Dan*_*ark 8 objective-c automatic-properties ios
我从不使用伊娃.我只使用属性 - 有时使用基本类型分配属性,有时使用"私有"类扩展.我已经看到了不使用ivars切换到ARC的优点 - 我有一些带有大量ivars的借用代码,我仍然不能"ARC",因为我不知道需要保留什么.所以我知道不使用ivars的一些优点,但使用ivars而不是属性有什么好处?
注意:我完全依赖于(通过编译器?)为属性声明自动添加的ivars.
不要标记为关闭:我已经看过其他一些问题,比如这个和这个,没有一个问题.标题看起来不错,但就像SO上的那么多问题一样,问题是一堆奇怪的疑惑和其他东西.
声明的属性不能以与 ivar 相同的方式处理@protected
。您可以在类扩展中声明该属性以使其对任何其他类保持私有,或者在标头接口中声明它以使其可公开访问,但是无法使其仅可由子类访问。这需要 ivar 声明。
编辑
只是另一个简短的想法。我最近写了很多框架类,我认为使用 iVars 作为文档可能有一些话要说。
例如,假设您正在紧密循环中调用某些代码,并且您希望确保其高性能。在这个紧密循环中,您想要访问类的属性,但需要知道每次调用它时返回值是即时计算还是存储在 iVar 中。在标头中查看 iVar 是确保您无需太多开销即可取回该变量的快速方法。
归档时间: |
|
查看次数: |
559 次 |
最近记录: |