विषय के अनुसार, मैं कैसे जांच सकता हूं कि कोई ऑब्जेक्ट एनएसएआरएआरई या एनएस डिक्शनरी है या नहीं?जांचें कि कोई ऑब्जेक्ट एक एनएसएआरएआरई है या NSDictionary
उत्तर
if([obj isKindOfClass:[NSArray class]]){
//Is array
}else if([obj isKindOfClass:[NSDictionary class]]){
//is dictionary
}else{
//is something else
}
[myObject isKindOfClass:[NSArray class]]
और
[myObject isKindOfClass:[NSDictionary class]]
इन दोनों का प्रयास करें BOOL मान चाहिए। यह NSObject विधि के बुनियादी इस्तेमाल होता है: In Objective-C, how do I test the object type?
मामला है जब आप एक JSON या XML से डेटा पार्स करने कर रहे हैं पर विचार करें:
-(BOOL)isKindOfClass:(Class)aClass
में थोड़ा और अधिक जानकारी के लिए इस सवाल का जवाब यहाँ देख प्रतिक्रिया। आप जिस पार्सिंग लाइब्रेरी का उपयोग कर रहे हैं उसके आधार पर, आप एनएसएआरआरएएस या एनएसडीयूज के साथ समाप्त नहीं हो सकते हैं। इसके बजाय आपके पास __NSCFArray या __NSCFDictionary हो सकता है। शायद ज़रुरत पड़े
if([unknownObject respondsToSelector:@selector(lastObject)]){
// You can treat unknownObject as an NSArray
}else if([unknownObject respondsToSelector:@selector(allKeys)]){
// You can treat unknown Object as an NSDictionary
}
:
उस मामले में, आप एक सरणी है या एक शब्दकोश है कि क्या यह प्रतिक्रिया करता है की जाँच करने के लिए एक चयनकर्ता है कि केवल एक सरणी या शब्दकोश का जवाब होता है कि क्या सबसे अच्छा तरीका है की जाँच करने के कोई भी स्विफ्ट समकक्ष की तलाश में इस पार्टी के लिए देर से आता है, यहां आप जाते हैं। यह एक बहुत अधिक ऑब्जेक्टिव-सी संस्करण, IMHO से सुरुचिपूर्ण है, क्योंकि न केवल यह प्रकार की जाँच करता है, लेकिन यह एक ही समय में इच्छित प्रकार के लिए उन्हें डाले:
if let arrayVersion = obj as? NSArray {
// arrayVersion is guaranteed to be a non-`nil` NSArray
} else if let dictionaryVersion = obj as? NSDictionary {
// dictionaryVersion is guaranteed to be a non-`nil` NSDictionary
} else {
// it's neither
}
- 1. जांचें कि कोई ऑब्जेक्ट
- 2. जांचें कि कोई ऑब्जेक्ट एक प्रतिनिधि
- 3. जांचें कि NSDictionary में कुंजी मौजूद है या नहीं
- 4. जांचें कि कोई ऑब्जेक्ट शून्य है
- 5. जांचें कि कोई चर mysqli ऑब्जेक्ट प्रकार है या नहीं?
- 6. कैसे जांचें कि कोई ऑब्जेक्ट कल बराबर है या नहीं?
- 7. पायथन: जांचें कि कोई ऑब्जेक्ट अनुक्रम है
- 8. कैसे बताएं कि ऑब्जेक्ट एनएसएआरएआरई में है या नहीं?
- 9. कैसे जांचें कि एनएसएआरएआरई में किसी विशेष वर्ग का ऑब्जेक्ट है या नहीं?
- 10. जांचें कि कोई ऑब्जेक्ट एक सामान्य संग्रह है
- 11. जांचें कि शीर्ष सूची में कोई ऑब्जेक्ट
- 12. जांचें कि क्या कोई ऑब्जेक्ट VBScript
- 13. जांचें कि जावास्क्रिप्ट ऑब्जेक्ट
- 14. जांचें कि कोई तर्क एक सूची है या परमाणु
- 15. जांचें कि कोई स्ट्रिंग एक यूआरएल है
- 16. जांचें कि कोई सूची है
- 17. जांचें कि ईवेंट में कोई श्रोताओं है या नहीं?
- 18. जांचें कि ऑब्जेक्ट बनाया गया है या नहीं, डेल्फी
- 19. जांचें कि कोई फ़ोल्डर स्थानीय या नेटवर्क संसाधन है .NET
- 20. कैसे जांचें कि कोई चर Array या ऑब्जेक्ट है या नहीं?
- 21. जांचें कि कोई पथ पूर्ण या सापेक्ष
- 22. जावास्क्रिप्ट जांचें कि कोई चर विंडो है
- 23. हाइबरनेट: जांचें कि ऑब्जेक्ट मौजूद है
- 24. जांचें कि ऑब्जेक्ट एक sqlalchemy मॉडल उदाहरण
- 25. एनएसएआरएआरई में ऑब्जेक्ट विधि
- 26. कैसे बताना है कि कोई ऑब्जेक्ट एक RegExp ऑब्जेक्ट है?
- 27. क्या एनएसएआरएआरई: आखिरी ऑब्जेक्ट एक ऑटोरेलेज्ड ऑब्जेक्ट लौटाता है?
- 28. जांचें कि कोई प्रोग्राम एक पायथन लिपि
- 29. आईफोन - एनएसएआरएआरई ऑब्जेक्ट
- 30. मल्टी-आयामी एनएसएआरएआरई ऑब्जेक्ट
-1 कई वस्तुओं प्रतिसाद दे सकता है वही चयनकर्ताओं के लिए, विशेष रूप से 'LastObject' या' allKeys 'के रूप में सामान्य के रूप में कुछ। 'IsKindOfClass का उपयोग करना: 'एनएसएआरएआरई' और' NSDictionary' जैसे क्लास क्लस्टर से निपटने के लिए स्पष्ट रूप से जाने का तरीका है। – Calrion
वह उत्तर कुल बकवास है। [myObject isKindOfClass: [NSArray क्लास]] सही ढंग से सवाल का जवाब देता है "क्या मेरा ऑब्जेक्ट व्यवहार करेगा जैसे यह एक एनएसएआरएआरई है", और यही वही है जो आप चाहते हैं। कोई चयनकर्ता नहीं है कि केवल एक एनएसएआरएआरई या एनएस डिक्शनरी जवाब दे। दो मिनट में मैं उदाहरण के तरीकों के साथ एक वर्ग बना सकता हूं "allKeys" और "lastObject"। या NSArray के लिए एक श्रेणी विधि के रूप में "allKeys" जोड़ें। – gnasher729