जवाबों:
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संभाला है