繁体   English   中英

compare:和isEqualToString:有什么区别?

[英]What is the difference between compare: and isEqualToString:?

我正在研究这个:

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之间有什么区别

我是编程新手,所以请耐心等待。
非常感谢。

compare:方法允许您确定对象的顺序 ,以便您可以使用它进行排序。 isEqualToString:仅用于确定两个字符串是否具有相同的值(注意:它比较的是值,而不是对象)。

isEqualToString:专门测试两个字符串的相等性。 这种方法增强了字符串比较,只测试两个字符串是否相等(即它们是相同的)。

compare:是比较两个对象的通用方法,对于字符串不一定是增强的。 compare:还返回两个对象的相对位置,不仅是它们是否相等,而且它们是否小于,等于或大于它们被比较的对象。

compare将为您提供一个NSComparisonResult,您可以使用它来在tableView中订购内容,如NSOrderedSame或NSOrderedAscending等。

isEqualTo是一个NSObject方法,它应该被子类扩展覆盖,比如NSString(isEqualToString :),基本上它将一个对象与另一个对象以你期望的方式与内容进行比较。 [@“d”isEqualTo:@“d”]将返回TRUE或1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM