我想问一下那里的所有Cocoa老手 - 在以下情况下使用mutable和immutable对象之间是否有性能差异:
NSString
的{{1}}与stringByAppendingString:
的{{1}} NSMutableString
的{{1}}与appendString:
的{{1}} 谢谢你,编码愉快!
答案 0 :(得分:2)
这个问题很难回答:NSArray
和NSString
不是实际的实现,它们是类集群,NSMutableArray
和NSMutableString
也是如此。下面的真实实现无法确定,因此性能难以比较。
你可能找不到那个肯定的答案。
但我猜测是:stringByAppendingString
和arrayByAddingObject
创建包含修改的新对象,即将当前项目复制到内存中的新位置,NSMutableArray
和NSMutableString
应该有更好的性能,因为它们是为了防止在可能的情况下进行复制而构建的(实际上并非如此,因为NSMutableArray
可能会在添加元素时重新复制内存但不是每次都重复)。
我认为你应该相信CoreFoundation编码器:你不想改变对象吗?使用mutables一个。