इसके अलावा ग्राहम ली से सुझाव पर विस्तार ...
आप NSMutableDictionary के लिए एक विधि आप अपने गैर NSObject प्रकार की एक प्रमुख के साथ एक मूल्य जोड़ने की अनुमति देता है कि जोड़ने के लिए एक उद्देश्य-सी category इस्तेमाल कर सकते हैं । यह आपके कोड को रैपिंग/अनैपिंग सिंटैक्स से मुक्त रखता है।
फिर, यह सोचते हैं
enum ETest { FOO, BAR };
सबसे पहले, हम NSValue को एक निर्माता को समझाने जोड़ रहे हैं:
@interface NSValue (valueWithETest)
+(NSValue*) valueWithETest:(enum ETest)etest;
@end
@implementation NSValue (valueWithETest)
+(NSValue*) valueWithETest:(enum ETest)etest
{
return [NSValue value: &etest withObjCType: @encode(enum ETest)];
}
@end
अगला हम NSMutableDictionary
को
@interface NSMutableDictionary (objectForETest)
-(void) setObject:(id)anObject forETest:(enum ETest)key;
-(id) objectForETest:(enum ETest)key;
@end
@implementation NSMutableDictionary (objectForETest)
-(void) setObject:(id)anObject forETest:(enum ETest)key
{
[self setObject: anObject forKey:[NSValue valueWithETest:key]];
}
-(id) objectForETest:(enum ETest)key
{
return [self objectForKey:[NSValue valueWithETest:key]];
}
@end
'enum ETest' समर्थन जोड़ देंगे
मूल उदाहरण इस प्रकार
0 में परिवर्तित किया जा सकता है
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject: @"Bar!" forETest:BAR];
NSLog(@"getting value Bar -> %@", [dict objectForETest: BAR]);
[dict release];
इस बात पर निर्भर करते हुए कि आप शब्दकोश को एक्सेस करने के लिए अपने enum का कितना उपयोग करते हैं, यह आपके कोड की काफी आसानी से आसानी से हो सकता है।
धन्यवाद! यह बिल्कुल बढ़िया काम करता है :) – PlagueHammer