就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。
9年前关闭。
只需要对 View 对象进行一些说明。如果我在这里提到的任何事情不清楚,请告诉我。
只是几个问题:
为诸如标签之类的对象创建属性究竟做了什么?
为什么我们不需要为我们创建的某些按钮创建属性?
为什么我们必须为某些 View 对象创建属性?我问这个是因为我创建了一个开关,但我想使用它的值发送到我的模型,但我必须创建一个属性才能使其工作。这与开关的getter和setter有关吗?
最佳答案
What does creating a property do exactly for an object such as a label?
当您说“创建属性”时,我假设您的意思是创建
IBOutlet
View Controller 中的属性以引用相关标签。目的是允许您以编程方式与该标签进行交互(例如更改它显示的文本等)。如果您不打算与该标签进行交互(例如,它只是一个提示),那么没有 IBOutlet
是需要的。但是如果您需要与它交互(例如,根据其他地方的一些其他用户输入更改它的值),那么您可能有一个 IBOutlet
.Why don't we need to create properties for certain buttons that we create?
您只需要创建
IBOutlet
您将以编程方式与之交互的那些对象的引用(例如,更改按钮上的文本,检索开关的值),否则您不需要 IBOutlet
属性(property)。对于按钮,您可能有 IBAction
,或者如果使用 segues,您甚至可能不需要它。你经常不需要IBOutlet
按钮的属性引用(但如果出于任何原因需要它,您可以拥有一个)。但总之,你只需要创建
IBOutlet
您将在自己的代码中与之交互的那些控件的属性引用。Why do we have to create properties for certain view objects? I ask this because I had created a switch but I wanted to use it's value to send to my model, but I had to create a property to make it work. Is this related to the switch's getter and 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
的属性(property)来自其他方法,具有 IBOutlet
属性引用非常有用。
关于iOS View 对象属性与操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274337/