我只是从旧项目中复制代码。我发现了一些奇怪的东西,但我不知道该怎么做。我只想创建如下图所示的“ 图表视图模型”。我也需要一个插座。
还有一个相应的类。
class ChartModel: NSObject {
// .....
}
我只想知道在故事板中使用模型的目的以及如何做到这一点。
答案 0 :(得分:1)
您是否曾经将手势识别器放入情节提要场景中?这是完全平行的。笔尖的加载实例化了手势识别器并将其附加到视图,因此您不必在代码中进行操作。这就是这里发生的事情。
任何 NSObject子类都可以实例化为nib对象。在库中找到对象:
将其从库中拖入场景;选择它,并将其在身份检查器中的类更改为所需的类(ChartModel)。
现在,您将面临一个问题,即在笔尖加载时创建该实例会发生什么情况。在iOS上,除非有其他人保留,否则它会冒烟而消失。通常的解决方案是您还有一些其他笔尖对象,并带有该对象的出口。现在,当笔尖加载时,将实例化对象并将其分配给另一个笔尖对象中的相应属性。那就是您的门店所做的:
@IBOutlet var chartViewModel : ChartModel!
好的,但是到目前为止,这完全等同于说
var chartViewModel = ChartModel()
仅仅是,我们没有在代码中实例化ChartModel,而是通过加载笔尖实例化了它。
那为什么首先要这么做呢?为什么要从笔尖而不是代码中实例化此ChartModel?仅当ChartModel itself 具有可在笔尖中配置的出口时,这才有意义。您没有向我们显示(您仅显示了class ChartModel
声明的第一行),因此在这种情况下,我们无法详细说明实际目的是什么。