0

可能重复:
可可objective-c 类中变量前面的下划线如何工作?
在Objective C中用下划线前缀属性名称

当我们声明一个属性然后像这样合成它时:@synthesize name = _name; 因此,_name 是我们将在以下实现中使用的 name 属性的实例变量。我的问题是为什么我们需要这个 ivar,如果我没有创建 _name ivar 会发生什么?谢谢你。

4

1 回答 1

0

我的理解是有一个默认的ivar名称,和属性名是一样的。使用下划线指定自己的原因之一是为了消除 setter 中的歧义:

-(void) setFoo:(id) foo {
  // here, foo should ONLY refer to the passed-in var
  // If your ivar is the same, it is ambiguous.
  // If your ivar is _foo, then there is clarity.
}
于 2012-06-21T15:19:00.643 回答