首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS Swift: NSMutableString和[字符]哪个更适合已知的尺寸?

iOS Swift: NSMutableString和[字符]哪个更适合已知的尺寸?
EN

Stack Overflow用户
提问于 2022-07-17 11:07:35
回答 1查看 48关注 0票数 0

我正在做一些文本处理,涉及到将许多字符转换为字符串。输入是Character的长序列,输出是根据某些规则从Character序列中创建的多个字符串。

可以这样说:

代码语言:javascript
运行
复制
let input = "The quick brown fox jumps over a lazy dog."

我想知道下列哪一项更有效:

代码语言:javascript
运行
复制
let buffer = NSMutableString(capacity: MAX_SIZE)
var result = [String]()
for c in input {
    buffer.append(String(c))
    if (isComplete(buffer)) {
        result.append(String(buffer))
        buffer.deleteCharacters(in: NSRange(location: 0, length: buffer.length))
    }
}

与:

代码语言:javascript
运行
复制
var buffer = [Character]()
var result = [String]()
for c in input {
    buffer.append(c)
    if (isComplete(buffer)) {
        result.append(String(buffer))
        buffer.removeAll()
    }
}

在我看来,第二种方法更好,因为它不需要将每个字符转换为String来存储在NSMutableString中,但是由于我们知道最大可能的缓冲区大小,第一种方法为可变字符串指定了capacity,这在内存管理方面可能更好。当添加更多超出为缓冲区分配内存空间的字符时,内存重新分配?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-07-17 11:57:28

我们必须理解,NSMutableString给出了一个更受控的包装器来操作字符。可以使用多个字符串。

字符就像传统的数组,工作原理相同。更多的手工工作和数组的所有限制。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73011241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档