Jak*_*čar 94 iphone cocoa objective-c nsstring
isEqual:和之间有什么区别isEqualToString:?
为什么类添加了isEqualTo*方法(NSArray的isEqualToArray,NSData的isEqualToData,...)而不仅仅是覆盖isEqual:?
Abi*_*ern 103
isEqual:将字符串与对象进行比较,NO如果对象不是字符串,则返回.isEqualToString:如果您知道两个对象都是字符串,则速度会更快,因为文档说明:
特别注意事项
当您知道两个对象都是字符串时,此方法是检查相等性的更快方法
isEqual:.
isEqualTo<Class>用于提供相等的特定检查.例如; isEqualToArray:检查该阵列包含对象的数目相等,并在给定的索引返回的对象YES的isEqual:试验.
Jon*_*ann 16
另外,对于编写自己的方法-isEqual:和-isEqualTo<Class>:方法,约定是允许nil参数,-isEqual:并为nil参数引发异常-isEqualTo<Class>:
扩大对@Abizern和@Jonathan丹恩的答案,既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");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39568 次 |
| 最近记录: |