值得将NSMutable <t>转换为NS <t> </t> </t>

时间:2012-01-02 12:38:33

标签: objective-c performance cocoa-touch memory-management

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

2 个答案:

答案 0 :(得分:3)

使用您希望能够在适当位置更改内容的可变类型。否则使用不可变类型。

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

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

答案 1 :(得分:0)

就像你说的那样,如果你多次使用Mutable,它的唯一价值。但如果你只打了几次电话,这不是问题。

您应该考虑替代方案,例如在较大的TableViews cellForRowAtIndexPath:方法中。使用[NSString stringWithFormat:@"%@%@", fristString, secondString],而不是*foo = [[NSMutableString alloc] init][foo append:firstString]等等。