【问题标题】:what does "_object" mean in objective-c [duplicate]“_object”在objective-c中是什么意思[重复]
【发布时间】:2013-09-02 18:55:40
【问题描述】:
@property (nonatomic, copy ) NSString *title;
@synthesize title = _title;

这个“_title”是什么意思?

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

【问题讨论】:

标签: objective-c


【解决方案1】:

_titleiVar。表示它是变量,title只是一个属性。你是通过将iVar分配给属性来合成的。因为你不需要写类似的方法

- (NSString *)title {
    return _title;
}

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

那些是getter和setter

当你这样做时

title =_title.上面这两个方法将setter和getter抽象成一行。

【讨论】:

    【解决方案2】:

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

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

    self.title = @"Some title";
    

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

    _title = @"Some title";
    

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

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

    原因:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-31
      • 2012-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 2017-10-16
      • 2017-02-17
      相关资源
      最近更新 更多