Jak*_*old 5 properties objective-c synthesize
我在iOS(cs193p)上观看了斯坦福iTunes U课程,老师明确表示在使用时总是指定ivar名称,@synthesize以避免出现问题,例如
@synthesize name = _name;
Run Code Online (Sandbox Code Playgroud)
但是在浏览声明属性的Cocoa文档时,我还没有真正看到过这个,或者在任何其他示例代码中.
这让我想到一个问题,为什么需要这个?仅仅使用@synthesize属性名称是否足够好?是否有任何具体问题可以帮助避免?
这样做的原因是为了防止直接访问ivars,从而导致内存管理问题.例如:
正确: self.name = newName;
不正确:name = newName;
属性的getter和setter确保正确处理内存管理.要访问ivars,您必须明确键入前导下划线,这是非常难以做到的.唯一一次直接访问ivars init,dealloc以及getter和setter.
| 归档时间: |
|
| 查看次数: |
727 次 |
| 最近记录: |