【问题标题】:Should I access Ivars directly within a class implementation?我应该直接在类实现中访问 Ivars 吗?
【发布时间】:2010-12-28 08:28:16
【问题描述】:

我在这个问题上犹豫了一段时间,但我想知道人们对直接从 Objective-C 类实现中访问实例变量有何看法?

使用访问器和修改器让很多事情变得简单,但是对于简单的事情,直接访问实例变量是不是很糟糕?私有实例变量的最佳实践是否不同?

【问题讨论】:

    标签: objective-c properties instance-variables accessor


    【解决方案1】:

    很抱歉,我不同意总是在类中使用属​​性来访问 ivars。

    通常如果: 1.您的财产不是原子的,并且 2.你的属性没有复杂的逻辑(也就是你只有一个综合属性)——那么就没有必要使用属性了。直接使用 ivar 即可。

    如果您的属性是原子的,那么显然您必须同时使用 getter 和 setter。但是,始终使用 setter 非常方便...

    【讨论】:

    • 感谢您的贡献!在过去的几年里,我一直倾向于你的观点。尤其是 ARC。
    【解决方案2】:

    如果您始终使用访问器方法,则可以确保正确处理内存管理,尤其是在综合这些方法时。话虽如此,如果我们谈论的是访问原始类型的 ivars,那么在实例方法的实现中直接使用它们并没有什么坏处。

    【讨论】:

    • 我不同意总是使用属性。请看我的回答为什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多