只需要对视图对象进行一些说明。如果我在这里提到的任何事情不清楚,请告诉我。
只是几个问题:
为诸如标签之类的对象创建属性究竟做了什么?
为什么我们不需要为我们创建的某些按钮创建属性?
为什么我们必须为某些视图对象创建属性?我问这个是因为我创建了一个开关,但我想使用它的值发送到我的模型,但我必须创建一个属性才能使其工作。这与开关的getter和setter有关吗?
只需要对视图对象进行一些说明。如果我在这里提到的任何事情不清楚,请告诉我。
只是几个问题:
为诸如标签之类的对象创建属性究竟做了什么?
为什么我们不需要为我们创建的某些按钮创建属性?
为什么我们必须为某些视图对象创建属性?我问这个是因为我创建了一个开关,但我想使用它的值发送到我的模型,但我必须创建一个属性才能使其工作。这与开关的getter和setter有关吗?
为诸如标签之类的对象创建属性究竟做了什么?
当您说“创建属性”时,我假设您的意思是IBOutlet
在视图控制器中创建一个属性以引用相关标签。目的是允许您以编程方式与该标签进行交互(例如更改它显示的文本等)。如果您不打算与该标签进行交互(例如,它只是一个提示),则IBOutlet
不需要。但是,如果您需要与它交互(例如,根据其他地方的一些其他用户输入更改它的值),那么您可能有一个IBOutlet
.
为什么我们不需要为我们创建的某些按钮创建属性?
您只需要为IBOutlet
您将以编程方式与之交互的那些对象创建引用(例如更改按钮上的文本,检索开关的值),否则您不需要IBOutlet
属性。对于按钮,您可能有一个IBAction
,或者如果使用 segue,您甚至可能不需要它。您通常根本不需要IBOutlet
按钮的属性引用(但如果出于任何原因需要它,您可以拥有一个)。
但简而言之,您只需IBOutlet
为将在您自己的代码中与之交互的那些控件创建属性引用。
为什么我们必须为某些视图对象创建属性?我问这个是因为我创建了一个开关,但我想使用它的值发送到我的模型,但我必须创建一个属性才能使其工作。这与开关的getter和setter有关吗?
如果你想UISwitch
从一些随机方法中访问状态,那么,是的,getter 方法会让你很容易做到这一点。并且通过定义一个属性,会为你合成getter方法。
另一方面,如果您有一个IBAction
与“值更改”事件相关联的UISwitch
,您可以从sender
参数访问它而无需额外的属性。
- (IBAction)changedSwitchValue:(id)sender
{
UISwitch *switchControl = sender;
if (switchControl.on)
NSLog(@"Switch is on");
else
NSLog(@"Switch is off");
}
但是如果你想从其他方法访问on
属性,拥有一个属性引用是非常有用的。UISwitch
IBOutlet
为诸如标签之类的对象创建属性究竟做了什么?
属性用于为实例变量生成 getter 和 setter 您可以手动实现相同的访问器。如果您正在谈论,IBOutlet
那么它是 GUI 对象和代码之间交互的方式(您可以访问对象的属性),IBOutlet
成为用户界面上添加的对象与代码之间的连接
为什么我们不需要为我们创建的某些按钮创建属性?
有时,当您在不使用 .xib 或 GUI 的情况下以编程方式创建对象时,您不需要创建对象,IBOutlet
而是可以只使用类中没有插座的属性来访问对象的属性,但在这种情况下,您将拥有手动将所有方法设置为对象的选择器,例如在UIButton
.