@property (nonatomic, copy ) NSString *title;
@synthesize title = _title;
这个“_title”是什么意思?
任何帮助表示赞赏。在此先感谢
@property (nonatomic, copy ) NSString *title;
@synthesize title = _title;
这个“_title”是什么意思?
任何帮助表示赞赏。在此先感谢
_title
是iVar。意味着它是变量,标题只是一个属性。您通过将 iVar 分配给属性进行合成。因为您不需要编写类似的方法
- (NSString *)title {
return _title;
}
- (void)settitke:(int)newValue {
_title = newValue;
}
那些是吸气剂和二传手
当你这样做时
title =_title
.这两个方法将setter和getter抽象在一行中。
这意味着该属性的支持 iVar 有一个前导下划线。
所以你可以使用属性语法来访问它:
self.title = @"Some title";
或者您直接访问它,但使用下划线名称
_title = @"Some title";
尽管不鼓励使用直接访问,但初始化程序和 dealloc 方法除外。
如果您使用自动合成,默认情况下会添加下划线。
这样做的原因:
当您使用直接访问来引用 iVar 而不是局部变量或属性时,它会更加清晰。
这也意味着您可以为方法参数使用明显的名称,而不必担心它们会发生冲突;例如,如果您要编写一个引用该属性的方法: