比较两个字符串是否相等时,应该用isEqualToString:,而不能仅仅只是比较字符串的指针值,例如:
NSString str1 =@“hello”;
NSString str2 = @"world";
if( [str1 isEqualToString: str2] ){
NSLog(@"The strings are the same!");
}
和
if(str1 == str2){
NSLog(@"They are the same object");
}
是不同的。
这是因为==运算符只判断str1和str2的指针的数值,而不是他们所指的对象。由于str1和str2是不同的字符串,所以第二种比较方式会认为他们是不同的。
有时我们想检查两个对象的标识:str1和str2是同一对象吗?这时就应该使用运算符==,如果是想查看等价性(及两个字符串是否代表同个事物吗),那么请使用isEqualToString。