2009-12-16 7 views
14

क्या क्लास नाम betweeen 2 ऑब्जेक्ट्स की तुलना करने का कोई तरीका है?हम किसी ऑब्जेक्ट के 2 वर्ग नामों की तुलना कैसे करते हैं

तरह:

NSString *bla = [[NSString alloc] init]; 
if([bla class] isEqual: NSString]) 
NSLog(@"success"); 

अनिश्चित अगर मेरे वाक्य रचना सही है।

उत्तर

56

सही वाक्य रचना है:

if ([bla class] == [NSString class]) 

तुम भी -isMemberOfClass: या उपयोग कर सकते हैं - NSObject protocol से isKindOfClass: संदेशों।

+0

उन मामलों के लिए http://stackoverflow.com/q/16424298/1445366 देखें जिनमें यह काम नहीं करेगा। –

11

यह करना चाहिए:

NSString *bla = [[NSString alloc] init]; 
if ([bla isMemberOfClass: [NSString class]] == YES) 
    NSLog(@"Success"); 
+1

बेशक, '== YES' वैकल्पिक है। यह शायद इसके बिना भी बेहतर दिखता है! –

+5

वास्तव में, अपने BOOLs की तुलना YES से करना एक बुरा विचार है। बूल प्रकार YES और NO के लिए बाध्य नहीं है, और कुछ विधियां एक बूल लौटाती हैं जो न तो है। – Chuck

+0

क्या विधियां 'बूल' लौटाती हैं जो न तो है? – Wevah

संबंधित मुद्दे