gpt4 book ai didi

ios - NSString :characterAtIndex in objective C 的性能影响

转载 作者:行者123 更新时间:2023-11-29 10:52:47 26 4
gpt4 key购买 nike

我是 Objective C 的新手,来自 C++ 和 C# 背景。我需要做一些字符串操作。由于我需要在字符级别进行操作,我担心为每个字符调用函数会太慢。例如。在 C/C++ 中,使用 const char* 时,索引速度非常快。是否有任何文档说明“charactersAtIndex”等方法对性能的影响?编译器是否足够智能以内联此方法?

int current = 0;
NSString* str = @"....";//Long string
while (current < str.length && [str characterAtIndex:current] != ';')//function call at each character?
++current;

最佳答案

你是对的,obj-c 方法调用甚至比 C++ 虚拟调用更昂贵。

如果您关心性能,您可以查询长度,然后分配缓冲区(取决于预期长度,malloc 或 alloca),然后调用 getCharacters:range: 方法获取 C 数组中的 unicode 字符字符串。不要使用 UTF8String,除非您已准备好链接诸如 IBM 的 ICU 库之类的东西来访问单个字符。

此外,有时 NSScanner 类很有用。

关于ios - NSString :characterAtIndex in objective C 的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19734823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com