2
@property (nonatomic, copy ) NSString *title;
@synthesize title = _title;

这个“_title”是什么意思?

任何帮助表示赞赏。在此先感谢

4

2 回答 2

3

_titleiVar。意味着它是变量,标题只是一个属性。您通过将 iVar 分配给属性进行合成。因为您不需要编写类似的方法

- (NSString *)title {
    return _title;
}

- (void)settitke:(int)newValue {
    _title = newValue;
}

那些是吸气剂和二传手

当你这样做时

title =_title.这两个方法将setter和getter抽象在一行中。

于 2013-08-30T06:21:00.037 回答
1

这意味着该属性的支持 iVar 有一个前导下划线。

所以你可以使用属性语法来访问它:

self.title = @"Some title";

或者您直接访问它,但使用下划线名称

_title = @"Some title";

尽管不鼓励使用直接访问,但初始化程序和 dealloc 方法除外。

如果您使用自动合成,默认情况下会添加下划线。

这样做的原因:

当您使用直接访问来引用 iVar 而不是局部变量或属性时,它会更加清晰。

这也意味着您可以为方法参数使用明显的名称,而不必担心它们会发生冲突;例如,如果您要编写一个引用该属性的方法:

于 2013-08-30T06:25:05.090 回答