जवाबों:
isEqual:
किसी ऑब्जेक्ट के लिए एक स्ट्रिंग की तुलना करता है, और NO
ऑब्जेक्ट एक स्ट्रिंग नहीं होने पर वापस आ जाएगा । isEqualToString:
यदि आप जानते हैं कि दोनों वस्तुएं स्ट्रिंग हैं, तो प्रलेखन राज्यों के अनुसार:
विशेष ध्यान
जब आप जानते हैं कि दोनों वस्तुएं तार हैं, तो यह विधि समानता की तुलना में जांच करने का एक तेज़ तरीका है
isEqual:
।
isEqualTo<Class>
समानता के लिए विशिष्ट चेक प्रदान करने के लिए उपयोग किया जाता है। उदाहरण के लिए; isEqualToArray:
जाँचता है कि सरणियों में वस्तुओं की एक समान संख्या होती है, और यह कि किसी दिए गए सूचकांक में वस्तुएं परीक्षण के YES
लिए वापस आ जाती हैं isEqual:
।
इसके अलावा, अपने स्वयं के -isEqual:
और -isEqualTo<Class>:
तरीकों को लिखने के लिए , कन्वेंशन के लिए निल तर्क को अनुमति देना और निल तर्क के लिए -isEqual:
एक अपवाद उठाना है,-isEqualTo<Class>:
दोनों @Abizern और @Jonathan Dann जवाब विस्तार करते हुए, isEqual
और isEqualToString
साथ काम nil
मूल्यों।
- (void)testStringEqual {
NSString *string = nil;
STAssertFalse([string isEqual:@"test"], @"NSString isEqual");
STAssertFalse([string isEqualToString:@"test"], @"NSString isEqualToString");
// Note that these both return NO
STAssertFalse([string isEqual:nil], @"NSString isEqual");
STAssertFalse([string isEqualToString:nil], @"NSString isEqualToString");
string = @"test";
STAssertTrue([string isEqual:@"test"], @"NSString isEqual");
STAssertTrue([string isEqualToString:@"test"], @"NSString isEqualToString");
STAssertFalse([string isEqual:nil], @"NSString isEqual");
STAssertFalse([string isEqualToString:nil], @"NSString isEqualToString");
}
मेरी सशक्त अनुशंसा इस । IsEqualToString के प्रदर्शन लाभ मूल रूप से अधिकांश अनुप्रयोगों के लिए नगण्य हैं। लेकिन लेखक के उल्लेख के दो अन्य भेद हैं:
nil
संभाला है