NSString hasPrefix:vs hasSuffix:哪个更便宜?

hzx*_*zxu 4 objective-c nsstring ios

在我的项目中,我需要有一个字符串项的预定义前缀或后缀列表,它可以是前缀或后缀,这样我就可以浏览项目并检查每个项目的前缀或后缀,只是想知道哪个更便宜?感觉hasPrefix:比较便宜,但我没有任何提及支持这一点.

谢谢

Mar*_*n R 6

NSString是"免费桥接" CFStringRef,所以你可以检查http://www.opensource.apple.com/source/CF/CF-744.19/CFString.c中的实现 .

相关的函数是CFStringHasPrefix()CFStringHasSuffix(), CFStringFindWithOptionsAndLocale()没有或带有kCFCompareBackwards标志.

据我了解代码,此标志对性能没有影响,只有一些循环变量的初始化方式不同.

(但一般的"免责声明"也适用于此:您应该分析您的应用程序并检查前缀/后缀检查是否是性能瓶颈.如果不是,请选择更合理或更容易维护的内容.)