Object-c中比较两个字符串是否相等时,应该用isEqualToString:而不能仅仅只是比较字符串的指针值。
NSString *str1=@ "hello 1" ; NSString *str2; str2=[NSString stringWithFormat:@ "hello %d" , 1]; if ([thing1 isEqualToString:thing2]){ NSLog(@ "They are the same!" ) } |
这是比较内容
if (str1==str2){ NSLog(@ "They are the same!" ) } |
这是比较指针地址
这是因为==运算符只判断str1和str2的指针数值,而不是他们所指的对象。由于str1,str2是不同的字符串,所以第二种比较方式会认为它们是不同的。
有时我们想检查两个对象的标识:str1和str2是同一个对象吗?这时就应该使用运算符==。如果是想查看等价性(即这两个字符串是否代表同一个事物吗),那么请使用isEqualToString:
本文固定链接: http://www.istar.name/blog/ios-development-isequaltostring | Star's Blog