NSString
的localizedCaseInsensitiveCompare:
和localizedStandardCompare:
方法有什么区别?本地化字符串比较
我读了参考书,但没有得到正确的想法。
NSString
的localizedCaseInsensitiveCompare:
和localizedStandardCompare:
方法有什么区别?本地化字符串比较
我读了参考书,但没有得到正确的想法。
localizedCaseInsensitiveCompare:
等同于:
[aString compare:otherString
options:NSCaseInsensitiveSearch
range:NSMakeRange(0,aString.length)
locale:[NSLocale currentLocale]];
localizedStandardCompare:
基本上等同于:
[aString compare:otherString
options:NSCaseInsensitiveSearch | NSNumericSearch
range:NSMakeRange(0,aString.length)
locale:[NSLocale currentLocale]];
所以,主要的区别是在字符串中的数字的比较方式。
使用localizedCaseInsensitiveCompare:
会导致以下顺序比较以下3个字符串:
"Foo2.txt",
"Foo25.txt",
"Foo7.txt"
在另一方面,使用localizedStandardCompare:
会导致以下顺序比较它们:
"Foo2.txt",
"Foo7.txt",
"Foo25.txt"
虽然localizedCaseInsensitiveCompare:
方法一直存在,localizedStandardCompare:
最近才被添加(OS X 10.6)。 Finder使用数字方法对文件名进行排序,并且在添加localizedStandardCompare:
之前,开发人员没有简单的方法来确保他们可以像Finder那样对字符串进行排序。
当决定使用哪一个时,如果您比较的字符串代表文件名,那么您应该倾向于使用localizedStandardCompare:
。
酷。因此,localizedStandardCompare可以比caseInsensitiveCompare更多地理解字符串中的某些内容。感谢这些例子。 – sridevi 2013-03-15 16:07:52
后者各种各样像取景器上OS X.
localizedCaseInsensitiveCompare:
类似于localizedCompare:
他们都返回一个NSComparisonResult
值,表示接收器,并使用本地化的比较,另一个定字符串的词汇顺序。
区别在于前者是case insensitive
。即当比较字符串时,它忽略了大写和小写字母的不同用法。
localizedStandardCompare
这比较了由Finder应用程序排序的字符串。
检查此:http://stackoverflow.com/questions/7293996/sorting-coredata-entity-with-a-nscomparisonresult 其种类相似.. – Mrunal 2013-03-15 15:33:10