我正在研究这个问题:
NSString *str1 = @"This is string A";
NSString *str2 = @"This is string B";
NSComparisonResult compareResult;
if([str1 isEqualToString:str2] == YES)
NSLog (@"str1 == str2");
else
NSLog (@"str1 != str2");
compareResult = [str1 compare: str2];
if (compareResult == NSOrderedAscending)
NSLog (@"str1 < str2");
else if(compareResult == NSOrderedSame)
NSLog (@"str1 == str2");
else
NSLog (@"str1 > str2");
所以我的问题是:
compare:和isEqualToString:之间的区别是什么?
我是编程新手,所以请耐心等待。
非常感谢。
答案 0 :(得分:7)
compare:方法允许您确定对象的 排序 ,以便您可以使用它进行排序。 isEqualToString:仅用于确定两个字符串是否具有相同的值(注意:它正在比较值,而不是对象)。
答案 1 :(得分:2)
isEqualToString:专门测试两个字符串的相等性。这种方法增强了字符串比较,只测试两个字符串是否相等(即它们是相同的)。
compare:是用于比较两个对象的通用方法,并不一定针对字符串进行增强。 compare:还返回两个对象的相对位置,不仅是它们是否相等,而且它们是否小于,等于或大于它们被比较的对象。
答案 2 :(得分:0)
compare将为您提供一个NSComparisonResult,您可以使用它在tableView中订购内容,如NSOrderedSame或NSOrderedAscending等。
isEqualTo是一个NSObject方法,它应该被子类扩展覆盖,比如NSString(isEqualToString :),基本上它将一个对象与另一个对象以你期望的方式与内容进行比较。 [@“d”isEqualTo:@“d”]将返回TRUE或1