属性合成和iVars

时间:2013-01-31 14:57:53

标签: objective-c properties ivar synthesize

免责声明:我对Objective-C

很新

我有几个与@property和@synthesize有关的问题。

假设我有财产

@property (strong, nonatomic) NSString *name;

1-我知道在Xcode 4.4+上你可以跳过为自然完成属性的@synthesize。所以我假设生成的 iVar 应该与属性的名称相同?一般来说,如果我@synthesize name; iVar 与属性名称相同?

2-我知道当我手动声明一个名为_name的私有变量并且我想让编译器将它用作我的属性 iVar 时使用@synthesize name = _name;。 我需要知道,如果@synthesize name = _name; 没有实际上声明了私有变量,会发生什么。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

  1. 如果我没弄错的话,生成的默认iVars以下划线开头。 I.e。:属性name的默认iVar为_name
  2. 将为属性_name生成iVar name。当@synthesize为您完成工作时,无需手动创建任何iVar,但如果您想手动添加它们,则不会出现任何问题。