我在Swift中有一个视图控制器类,其中视图是一个单独的类,我通过插座将它连接到视图控制器。这允许我在didset
方法中将视图控制器类设置为视图的委托:
@IBOutlet theView: ViewClass! {
didSet {
theView.delegate = self;
}
}
但是我也尝试将我的大多数应用程序后端逻辑分成一个单独的类(MVC中的模型),我在我的视图控制器中创建了这个:
let logic = Logic()
但我没有办法让Logic
做一些后台工作并告知我的视图控制器。同样,我希望将视图控制器作为委托类传递给Logic
。最好的地方在哪里?如果我尝试在MyViewController中执行此操作,我会收到一个奇怪的“无效参数类型列表”错误:
let logic = Logic(self)
可能是因为self
的初始化排序?这样做的正确位置/最佳方式是什么?
答案 0 :(得分:2)
我建议你看一下斯坦福大学的这门课程并看看MVC讲座:https://itunes.apple.com/gb/course/developing-ios-8-apps-swift/id961180099
他们建议使用NSNotifcation
让控制器知道模型中的更改,并仅使用委托来通知视图中的更改。请详细了解NSNotifcation
:http://www.andrewcbancroft.com/2014/10/08/fundamentals-of-nsnotificationcenter-in-swift/