NSDictionary
, एक वर्ग समूह है के रूप में Gendolkari कहा और Class Clusters are documented।
और, नहीं, आप निजी उप-वर्ग की सटीक पहचान पर निर्भर नहीं हो सकते हैं।
आप निश्चित रूप से अगर यह एक शब्दकोश है या नहीं यह निर्धारित करने के लिए निम्न कार्य करने के लिए सक्षम होना चाहिए:,
[myThingaMaHoover isKindOfClass: [NSDictionary class]];
या, कम से कम है कि यह एक शब्दकोश के रूप में NSDictinoary
वर्ग के एक हिस्से के रूप में लागू किया है क्लस्टर।
क्या आप नहीं कर सकते हैं isKindOfClass:
या isMemberOfClass:
का उपयोग यह निर्धारित करने के लिए है कि कोई शब्दकोश (या स्ट्रिंग, सरणी या सेट) उत्परिवर्तनीय है या नहीं। पर विचार करें:
NSDictionary *d = [NSDictionary dictionaryWithObject: [[NSObject new] autorelease] forKey: @"Bob"];
NSMutableDictionary *m = [NSMutableDictionary dictionaryWithObject: [[NSObject new] autorelease] forKey: @"Bob"];
NSLog(@"d class: %@ %@ %@", [d class], [d superclass], [[d superclass] superclass]);
NSLog(@"m class: %@ %@ %@", [m class], [m superclass], [[m superclass] superclass]);
यह आउटपुट:
d class: NSCFDictionary NSMutableDictionary NSDictionary
m class: NSCFDictionary NSMutableDictionary NSDictionary
d
और m
जो NSMutableDictionary
(जो NSDictionary
से विरासत) से विरासत NSCFDictionary
के दोनों उदाहरण हैं।
अच्छा जवाब। और यदि अगला प्रश्न है "मैं यह निर्धारित करने की कोशिश कर रहा हूं कि कोई शब्दकोश परिवर्तनीय है या नहीं", तो ... नहीं ... आप इसे भी नहीं कर सकते हैं। – bbum
क्या आप इसके लिए 'isMemberOfClass: [NSMutableDictionary class]' का उपयोग नहीं कर सकते? – GendoIkari
हाँ, isMemberOfClass: यह निर्धारित करने के लिए उपयोग किया जा सकता है कि कोई शब्दकोश परिवर्तनीय है या नहीं। – JustSid