在我的项目中,我需要一个字符串项的预定义前缀或后缀列表,它可以是前缀或后缀,这样我就可以遍历这些项并检查每个项的前缀或后缀,只是想知道哪个更便宜?感觉 hasPrefix:
比较便宜,但我没有任何引用资料支持这一点。
谢谢
最佳答案
NSString
是“免费桥接”到 CFStringRef
,所以
你可以检查实现
http://www.opensource.apple.com/source/CF/CF-744.19/CFString.c .
相关的函数是CFStringHasPrefix()
和CFStringHasSuffix()
,它们调用
CFStringFindWithOptionsAndLocale()
没有或带有 kCFCompareBackwards
标志。
据我了解代码,这个标志对性能没有影响,只是一些循环变量的初始化不同。
(但一般的“免责声明”也适用于此:您应该分析您的应用程序 并检查前缀/后缀检查是否是性能瓶颈。 如果不是,请选择更合乎逻辑或更易于维护的内容。)
关于ios - NSString hasPrefix : vs hasSuffix: which is less expensive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18866167/