值得将NSMutable <T>转换为NS <T>

Ech*_*lon 5 performance cocoa-touch memory-management objective-c

我知道内存管理的基础知识,但不知道iOS如何处理不同数据类型的内部结构.事情总是唠叨我,这是最好使用NSDataVS NSMutableDataNSString而非NSMutableString.除非代码将在10k循环中运行或者我在浪费时间,否则确实存在任何性能差异?

Abi*_*ern 3

如果您希望能够就地更改内容,请使用可变类型。否则请使用不可变类型。

在某些情况下,您别无选择 - 例如保存从 NSURLRequest 返回的数据的数据对象:使用可变数据对象比创建大量不可变数据类型并在最后将它们连接起来要容易得多。

之后,通过探查器运行您的代码,看看是否应该采取不同的做法。即创建新的不可变类型来保存对象的开销是否比使用可变类型更有效。其他任何事情都是过早的优化。