0

快速提问。我参加的所有教授目标 C 的课程总是在它们的实例变量前加上下划线。他们还解释说,当使用点语法时,您不必在访问实例变量时包含前导下划线。他们从未明确说过在 Objective C 中使用点语法将始终忽略前导下划线,这就是我的问题。点语法总是会忽略 Objective C 中的前导下划线吗?

为了消除混淆,如果我有一个类Item并且它有一个名为 的实例变量*_itemName,我可以稍后(在 main 中)通过使用点语法并忽略前导下划线来设置该变量Item.itemName = something.

当我第一次开始使用 Obj-C 时,我会认为我必须将_itemName包括下划线设置为Item._itemName = something.

那么点语法是否会忽略前导下划线?

4

1 回答 1

1

“点语法”实际上并不是访问实例变量的快捷方式,而是访问属性*.

属性可以从实例变量中保存/加载它们的数据,但它们也可以从大量其他变量中获取它们的数据。它们旨在作为一种抽象和间接层。

* 从技术上讲,您可以将它用于任何看起来像属性方法的方法......但通常强烈建议不要这样做。不要那样做!

于 2014-04-10T19:18:12.550 回答