-1

为什么我必须在IBOutlet名称前加上下划线才能使用它们?即当我输入这个时:

myLabel.text = @"Hello World";

Xcode 说我

在插座名称前添加下划线

这意味着我必须改为输入:

_myLabel.text = @"Hello World";

为什么我必须这样做?

我使用 Xcode 6.3.2 和 Yosemite 10.10.1

4

3 回答 3

1

这是因为您需要在实现文件的顶部使用@synthesize。下划线是书写“self”的一种快速或简短的方式。

于 2015-06-02T07:19:50.503 回答
1

如果您的 myLabel 是 self 类中的属性,您可以使用 _myLabel 来避免调用 getter/setter 方法

于 2015-06-02T07:20:10.567 回答
0

根据您的属性声明,Xcode 将自动合成具有相同名称和下划线前缀的 ivar。您正在使用的名称是简单的 no var。所以这里是案例:

  1. 与下划线一起使用
  2. 与它一起使用self.myLabel
  3. 使用@synthesize myLabel = someAnotherName;或简单@synthesize myLabel;覆盖该行为
于 2015-06-02T07:25:53.073 回答