4

在我的项目中,我需要一个字符串项目的预定义前缀或后缀列表,它可以是前缀或后缀,这样我就可以遍历项目并检查每个项目的前缀或后缀,只是想知道哪个更便宜? 感觉好像hasPrefix:更便宜,但我没有任何参考来支持这一点。

谢谢

4

1 回答 1

6

NSString是“免费桥接”到的CFStringRef,因此您可以在 http://www.opensource.apple.com/source/CF/CF-744.19/CFString.c中检查实现。

相关的函数是CFStringHasPrefix()and CFStringHasSuffix(),它们 CFStringFindWithOptionsAndLocale()在没有或带有kCFCompareBackwards标志的情况下调用。

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

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

于 2013-09-18T07:48:15.417 回答