cfi*_*her 2 cocoa memory-management immutability
在Paul Hegarty的课程中,他建议使用不可变对象来实现内存管理.但是,我找不到原因.
那么,为什么不可变对象更适合内存管理呢?
主要原因是copy不可变对象的操作实际上是retain(或者,使用垃圾收集,无操作)的别名.这是有效的,因为正确使用不可变对象,除了指针比较之外,您无法观察原始对象和副本之间的区别.
这很重要,因为经常会复制"值对象",例如字符串,以避免Kenny Wyland描述的情况.如果你声明了一个属性@property (copy) NSString *foo,为它分配一个不可变的字符串将保留它而没有显着的开销,而为它分配一个可变的字符串将复制它以避免它在asignee的后面改变.
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |