在我的项目中,我需要一个预定义的字符串项目前缀或后缀列表,可以是前缀或后缀,这样我就可以遍历项目并检查每个项目的前缀或后缀,只是想知道哪个更便宜?感觉
谢谢
hasPrefix:
更便宜,但我没有任何参考来支持这一点。谢谢
hasPrefix:
更便宜,但我没有任何参考来支持这一点。NSString
是与CFStringRef
相互转换的,因此您可以在http://www.opensource.apple.com/source/CF/CF-744.19/CFString.c中查看其实现。
相关函数为CFStringHasPrefix()
和CFStringHasSuffix()
,它们分别使用不带或带有kCFCompareBackwards
标志的CFStringFindWithOptionsAndLocale()
。
据我所知,这个标志对性能没有影响,只是一些循环变量的初始化方式不同。
(但是一般的“免责声明”也适用于此:您应该对您的应用程序进行性能测试,并检查前缀/后缀检查是否真正成为性能瓶颈。如果不是,请选择更合理或更易于维护的方法。)