मुझे यह जांचने की आवश्यकता है कि ऑब्जेक्ट NSString
या UIImageView
प्रकार का है या नहीं। मैं यह कैसे हासिल कर सकता हूं? क्या कुछ प्रकार का "आइसोफ्ट टाइप" विधि है?उद्देश्य-सी में, मैं ऑब्जेक्ट प्रकार का परीक्षण कैसे करूं?
उत्तर
यदि आपका वस्तु myObject
है, और आप अगर यह एक NSString
है देखने के लिए परीक्षण करना चाहते हैं, कोड होगा:
[myObject isKindOfClass:[NSString class]]
इसी तरह, अगर आप एक UIImageView
के लिए myObject
का परीक्षण करना चाहता था:
[myObject isKindOfClass:[UIImageView class]]
ध्यान दें कि एक मेम्बरऑफ क्लास भी है: विधि जो वर्ग" सटीकता "की जांच करेगी। हालांकि इसके साथ सावधान रहें, क्योंकि कई ऐप्पल ऑब्जेक्ट वास्तव में कोर फाउंडेशन प्रकार छिपाने में हैं। (उदाहरण के लिए एक एनएसएसटींग अक्सर एक एनएससीएफस्ट्रिंग होता है, और यह MemberOfClass है: इस तुलना के लिए झूठी वापसी करेगा।) –
नोट करें कि यह विधि बहुत धीमी है! – SAKrisT
क्या यह सही है कि एनएसएसटींग एक क्लास क्लस्टर है? (एनएसएनंबर की तरह) – Ricardo
आप शायद का प्रयोग करेंगे
- (BOOL)isKindOfClass:(Class)aClass
यह NSObject
का एक तरीका है।
अधिक जानकारी के लिए NSObject
दस्तावेज़ीकरण की जांच करें।
इस प्रकार आप इसका उपयोग करते हैं।
BOOL test = [self isKindOfClass:[SomeClass class]];
इस
for(id element in myArray)
{
NSLog(@"=======================================");
NSLog(@"Is of type: %@", [element className]);
NSLog(@"Is of type NSString?: %@", ([[element className] isMemberOfClass:[NSString class]])? @"Yes" : @"No");
NSLog(@"Is a kind of NSString: %@", ([[element classForCoder] isSubclassOfClass:[NSString class]])? @"Yes" : @"No");
}
यह 'क्लासनाम' क्या है, मैं इसे अपने आईडी –
के साथ काम नहीं कर सकता हूं, ऐसी कोई बात नहीं है –
-1: 'className' का उपयोग न करें, यह ओएस एक्स पर काम कर सकता है या नहीं भी हो सकता है, लेकिन यह नहीं है आईओएस और इसका मतलब यह नहीं है कि इसका इस्तेमाल किया जाए। साथ ही, उन 'एनएसएलओजी' ऐसा नहीं करते हैं जो मुझे लगता है कि आप उन्हें समझते हैं - वे कक्षा तत्व (हमेशा एक स्ट्रिंग) और वास्तविक तत्व की कक्षा के बजाय अजीब तरह से कोडर वर्ग की जांच कर रहे हैं। – andyvn22
एक साधारण परीक्षण चल रहा है की तरह somthing कर कोशिश कर सकते हैं, मैंने सोचा कि मैं क्या काम करता है और क्या नहीं दस्तावेज़ चाहते हैं। अक्सर मैं लोगों को यह देखने के लिए देखता हूं कि ऑब्जेक्ट का वर्ग अन्य वर्ग का सदस्य है या अन्य वर्ग के बराबर है।
नीचे दी गई रेखा के लिए, हमारे पास कुछ खराब गठित डेटा है जो NSArray
, NSDictionary
या (null)
हो सकता है।
NSArray *hits = [[[myXML objectForKey: @"Answer"] objectForKey: @"hits"] objectForKey: @"Hit"];
इन परीक्षणों कि प्रदर्शन किया गया हैं:
NSLog(@"%@", [hits class]);
if ([hits isMemberOfClass:[NSMutableArray class]]) {
NSLog(@"%@", [hits class]);
}
if ([hits isMemberOfClass:[NSMutableDictionary class]]) {
NSLog(@"%@", [hits class]);
}
if ([hits isMemberOfClass:[NSArray class]]) {
NSLog(@"%@", [hits class]);
}
if ([hits isMemberOfClass:[NSDictionary class]]) {
NSLog(@"%@", [hits class]);
}
if ([hits isKindOfClass:[NSMutableDictionary class]]) {
NSLog(@"%@", [hits class]);
}
if ([hits isKindOfClass:[NSDictionary class]]) {
NSLog(@"%@", [hits class]);
}
if ([hits isKindOfClass:[NSArray class]]) {
NSLog(@"%@", [hits class]);
}
if ([hits isKindOfClass:[NSMutableArray class]]) {
NSLog(@"%@", [hits class]);
}
isKindOfClass
बल्कि अच्छी तरह से काम करते हुए isMemberOfClass
नहीं किया।
आप एक सुपर क्लास और inheritedClass आप उपयोग कर सकते हैं के बीच भिन्न करना चाहते हैं:
if([myTestClass class] == [myInheritedClass class]){
NSLog(@"I'm the inheritedClass);
}
if([myTestClass class] == [mySuperClass class]){
NSLog(@"I'm the superClass);
}
इस मामले में - (BOOL)isKindOfClass:(Class)aClass
का उपयोग करते हुए दोनों बार सही में परिणाम होगा क्योंकि inheritedClass भी सुपर क्लास का एक प्रकार है।
'isMemberOfClass: उप-वर्गों से निपटने पर' '' वापस लौटाएगा। – mipadi
आप निम्नलिखित कोड का उपयोग कर सकते हैं जिसमें आप प्राचीन डेटा प्रकारों को देखना चाहते हैं।
// Returns 0 if the object type is equal to double
strcmp([myNumber objCType], @encode(double))
सरल, [yourobject वर्ग] यह yourobject के वर्ग का नाम वापस कर देगा।
वास्तव में यह एक 'कक्षा' वस्तु वापस कर देगा। हालांकि, इस ऑब्जेक्ट का 'वर्णन' वर्ग का नाम स्ट्रिंग के रूप में होगा, इसलिए आप इसे कंसोल पर लॉग कर सकते हैं। – devios1
- 1. मैं विधि ऑब्जेक्ट में विधियों का परीक्षण कैसे करूं?
- 2. मैं परीक्षण मामले में HttpServletRequest ऑब्जेक्ट को कैसे पास करूं?
- 3. मैं डब्ल्यूसीएफ सेवा का परीक्षण कैसे करूं?
- 4. मैं डीजेगो दृश्यों का परीक्षण कैसे करूं?
- 5. मैं डेटाबेस माइग्रेशन का परीक्षण कैसे करूं?
- 6. मैं webservices का परीक्षण कैसे करूं?
- 7. मैं कोड-जनरेटर का परीक्षण कैसे करूं?
- 8. मैं जीडब्ल्यूटी विकास का परीक्षण कैसे करूं?
- 9. मैं रुबी में एक्सएमएल समानता का परीक्षण कैसे करूं?
- 10. मैं किसी जेसन ऑब्जेक्ट में GUID का प्रतिनिधित्व कैसे करूं?
- 11. Django सामग्री-प्रकार: मैं ऑब्जेक्ट कैसे प्राप्त करूं?
- 12. मैं .NET में निरंतर परीक्षण कैसे करूं?
- 13. मैं रेल 3 प्लगइन में मार्गों का परीक्षण कैसे करूं?
- 14. मैं रेल में मददगारों का परीक्षण कैसे करूं?
- 15. मैं सी ++ में संरक्षित विधि का परीक्षण कैसे करूं?
- 16. मैं जावास्क्रिप्ट में सीएसएस चयनकर्ताओं का परीक्षण कैसे करूं?
- 17. मैं एएसपी.नेट एमवीसी में एक्शनफिल्टर का परीक्षण कैसे करूं?
- 18. पायथन एकजुट: मैं अपवादों में तर्क का परीक्षण कैसे करूं?
- 19. मैं जावा में इंटरनेट की उपलब्धता का परीक्षण कैसे करूं?
- 20. मैं रेल में फ़ाइल अपलोड करने का परीक्षण कैसे करूं?
- 21. मैं योजना में मूल्य का प्रकार कैसे प्राप्त करूं?
- 22. मैं IsTraversableLike में सदस्य ए प्रकार का उपयोग कैसे करूं?
- 23. मैं पाइथन 2.x में ऑब्जेक्ट पर आत्मनिरीक्षण कैसे करूं?
- 24. सबसे कुशल मार्ग का परीक्षण करने के लिए ऑब्जेक्ट प्रकार
- 25. मैं ऑब्जेक्ट को टाइमर ईवेंट में कैसे पास करूं?
- 26. मैं django डेटाबेस स्कीमा का परीक्षण कैसे करूं?
- 27. मैं रूबी मिक्सिन मॉड्यूल का परीक्षण कैसे करूं?
- 28. मैं ककड़ी के साथ DelayedJob का परीक्षण कैसे करूं?
- 29. मैं httpOnly कुकी ध्वज का परीक्षण कैसे करूं
- 30. मैं किसी बैकएंड क्लास वाली वेबसाइट का परीक्षण कैसे करूं?
देखें: [उद्देश्य-सी में जावा "उदाहरण" कीवर्ड के समतुल्य क्या है? (Http://stackoverflow.com/questions/536396/in-objective-c-what-is-the-equivelant- ऑफ-द-जावा-इंस्टेंसफ-कीवर्ड) – Reunanen
हां वहाँ है: '[ऑब्जेक्ट हैकिंडऑफ क्लास: [क्लासनाम क्लास]] ' –