【问题标题】:Is it necessary, or even good practice, to create properties for all iVars? [duplicate]为所有 iVar 创建属性是否有必要,甚至是良好做法? [复制]
【发布时间】:2012-03-13 04:46:19
【问题描述】:

如果要在类中全局使用 ivar,但永远不会被其他类访问,我们还应该使用属性吗?

【问题讨论】:

    标签: objective-c ios properties ivar


    【解决方案1】:

    这通常是个好主意,因为生成的访问器会为您处理诸如内存管理和 KVO 之类的事情。您可以将该属性放在类扩展中,这样其他类就无法使用它。

    【讨论】:

    • 所以我想这不是“必要的”而是“好的做法”。我对所有东西都使用了属性,但我注意到在苹果示例代码中一些 iVar 没有声明为属性。我找不到他们的选择背后的任何约定。
    • 是的。非 ARC 环境中对象的内存管理优势是最大的,因为当您不将责任集中在一个方法中时,它很容易出错。
    • 我还要提一下,如果您的代码包含 iVar 的 @private 指令,那么您可能做错了什么。
    【解决方案2】:

    对我来说,这取决于实例变量的用途。

    如果它是一个代表一些数据的对象,那么我将始终使用一个属性。

    如果它只是一个简单的BOOL 用于通过类中的几个方法进行一些内部簿记,那么我不会为它创建属性。

    【讨论】:

      猜你喜欢
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多