NSString比较效率

时间:2013-05-04 06:38:12

标签: foundation

字符串比较可能代价高昂。有一些统计数据表明,首先比较字符串大小可以消除非常高的字符串比较百分比。所以我很想知道NSString compare:方法是否考虑到了这一点。谁知道?

2 个答案:

答案 0 :(得分:2)

根据来源here(这只是一个实现,其他可能采取不同的行为),compare不首先检查长度,这实际上是有意义的,因为它不是一个等式检查。当它返回一个小于/等于/大于返回代码时,它来检查字符,即使长度是相同的。

如果长度不同,纯isEqual - 类型方法可以快速进行字符检查,但compare没有那么奢侈。

它确实对零的长度进行了某些检查,但没有将这两个长度相互比较。

答案 1 :(得分:1)

是的。它还会在此之前检查指针相等性(包括常量字符串大小写和其他一些由于字符串唯一化和字符串ROM)。

(编辑)这个答案适用于-isEqualToString :,而不是-compare:。我误读了