美文网首页
问题:@synthesize合成实例变量的规则是什么?假如pro

问题:@synthesize合成实例变量的规则是什么?假如pro

作者: 姜小舟 | 来源:发表于2020-05-08 09:25 被阅读0次

@synthesize合成实例变量规则

  • 如果指定了成员变量的名称,会生成一个指定的名称的成员变量,
  • 如果这个成员已经存在了就不再生成了.
  • 如果是 @synthesize foo; 还会生成一个名称为foo的成员变量,也就是说:如果没有指定成员变量的名称会自动生成一个属性同名的成员变量,
  • 如果是 @synthesize foo = _foo; 就不会生成成员变量了.

假如 property 名为 foo,存在一个名为 _foo 的实例变量,那么还会自动合成新变量么

不会

@property(nonatomic, copy) NSString *name;
/*
下面一行代码会报出警告 
Auto property synthesis will not synthesize property "_name" because it cannot
share an ivar with another synthesized property
*/
@property(nonatomic,copy) NSString *_name;

相关文章

网友评论

      本文标题:问题:@synthesize合成实例变量的规则是什么?假如pro

      本文链接:https://www.haomeiwen.com/subject/mlaaghtx.html