对iVar的类和对象感到困惑

时间:2012-10-28 23:00:40

标签: objective-c ios xcode

  

可能重复:
  @property and @synthesize

当一个类有属性但没有变量时它意味着什么? 相反,我看到的是:

@interface myClass : someClass

    @property (nonatomic,retain) UIButton* button;

@end

并在实施中:

@synthesize button = _button;

那么_button是谁?

@synthesize在宣布这样做时会做什么? 这是否意味着该类现在有一个名为_button的私有变量?我可以将_button视为该类的私有变量吗?

1 个答案:

答案 0 :(得分:2)

  

这是否意味着该类现在有一个名为_button的私有var?我可以将_button视为类的私有变量吗?

是的,这是Clang编译器的一个新功能 - 它会自动为属性创建实例变量,并且ivar具有@private访问级别,如果属性的名称为{_namwOfProperty,则为nameOfProperty {1}}。