我知道内存管理的基础知识,但不了解iOS如何处理不同数据类型的内部原理。一些东西总是让我苦恼,最好使用NSData与NSMutableData或NSString而不是NSMutableString。除非代码在10k循环中运行,否则真的有什么性能差异吗?还是说我是在浪费时间?
发布于 2012-01-02 20:51:34
在您希望能够就地更改内容的地方使用可变类型。否则,请使用不可变类型。
在某些情况下,您别无选择-例如保存从NSURLRequest返回的数据的数据对象:使用可变数据对象比创建许多不可变数据类型并在最后将它们连接起来要容易得多。
之后,通过分析器运行您的代码,看看您是否应该做一些不同的事情。即创建新的不可变类型来保存对象的开销是否比使用可变类型更有效。其他任何事情都是过早的优化。
发布于 2012-01-02 20:50:14
就像你说的,只有当你多次调用use Mutable时,它才有价值。但如果你只调用它几次,这不会有任何问题。
您应该考虑替代方法,例如,在更大的TableViews cellForRowAtIndexPath:方法中。使用[NSString stringWithFormat:@"%@%@", fristString, secondString]代替*foo = [[NSMutableString alloc] init]和[foo append:firstString],依此类推。
https://stackoverflow.com/questions/8700941
复制相似问题