tra*_*per 12 xcode objective-c ios automatic-ref-counting
在非ARC代码中,保留属性可以使用self.property =语法轻松地为您处理内存管理,因此我们被教导将它们用于几乎所有内容.
但是现在使用ARC,这种内存管理不再是一个问题,使用属性的原因是否会消失?有没有什么好的理由(显然除了提供对实例变量的公共访问权限)才能再使用属性?
bbu*_*bum 31
但是现在使用ARC,这种内存管理不再是一个问题,使用属性的原因是否会消失?有没有什么好的理由(显然除了提供对实例变量的公共访问权限)才能再使用属性?
是的 - 通过使用@property和@synthesized getters/setter,您可以保证:
即使是内部的类,我通常倾向于使用属性和点语法来维护对象内的状态.这并非普遍适用 - 如果我的设计是暴露意味着无论如何都会进行大规模的重构,那么我会直接操作一些实例变量(完全直接操作;根本没有@property).
那么使用属性的原因是什么?
随着ARC为ivars提供"所有权魔力",为什么选择属性而非ivars的这个特殊方面确实会消失.但是,还有许多其他人:
我继续使用属性作为保持可能暴露给外部类或内部"兄弟"类的状态的默认方式,因为额外的灵活性超过了运行时的额外成本.