Objective-C中正确比较字符串

比较两个字符串是否相等时,应该用isEqualToString:,而不能仅仅只是比较字符串的指针值,例如:

NSString *thing1=@"hello 5"; NSString *thing2; thing2=[NSString stringWithFormat:@"hello @d",5]; if ([thing1 isEqualToString:thing2]){ NSLog(@"They are the same!") }

if (thing1==thing2){ NSLog(@"They are the same!") }

是不同的。

这是因为==运算符只判断thing1和thing2的指针数值,而不是他们所指的对象。由于thing1,thing2是不同的字符串,所以第二种比较方式会认为它们是不同的。

有时我们想检查两个对象的标识:thing1和thing2是同一个对象吗?这时就应该使用运算符==。如果是想查看等价性(即这两个字符串是否代表同一个事物吗),那么请使用isEqualToString: 。

你可能感兴趣的:(Objective-C中正确比较字符串)