我想知道哪个测试 iOS 7.0+ 的非空 NSString 最快。
注意:要测试的字符串将有 99% 的时间长度在 2 到 100 个字符之间。
if ([foo length] > 0)
或
if ([foo isEqualToString:@""] == NO && foo != nil)
我认为这取决于 isEqualToString:
是否首先比较长度(并且在这种情况下第一种方式更快)或者 isEqualToString:
是否首先比较字符串的第一个字符(并且在那种情况下,第二种方式可能会更快)。
ps:我已经知道 isEqualToString:
比 isEqual:
快,后者本身比 compare:
快。
最佳答案
测量一下看看。
说真的。你不应该针对这样的东西进行优化,除非你能看到它实际上是一个性能瓶颈(这不太可能)。如果仪器(使用时间分析器)告诉您这是一个问题,那么正确的方法是衡量您的假设。
生成 n 百万个随机字符串,使用选项 A 然后选项 B 为代码计时,然后选择最快的。
关于objective-c - ObjC 中最快的 : IsEqualToString: @"" or length > 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192894/