我在尝试设置ParseController的委托时出错,这是我VC上的属性。
protocol ParseControllerDelegate: NSObjectProtocol {
var parseController: ParseController! {get set}
//TODO:- Instead of this function, i should use a closure, but couldnt get the sytnax right!
func updateUI()
}
class ParseController: NSObject {
weak var delegate: ParseControllerDelegate!
var dataArray:[AnyObject]!
init(delegate:ParseControllerDelegate!) {
self.delegate = delegate
}
然后当我尝试在我的VC“标题”中设置它时,我收到错误。
var parseController:ParseController! = ParseController(delegate: self)
我可以使用此方法在viewDidLoad中设置,但理想情况下我想将委托设置在何处。我得到的错误是
输入'MainVC - > () - > MainVC!”不符合协议'ParseControllerDelegate'
MainVC是我的viewController。
我尝试的事情:
我确定它很简单,但我无法弄清楚正确的语法。
答案 0 :(得分:0)
想出来! 正确的语法是:
lazy var parseController:ParseController = ParseController(delegate: self)
*注意:我必须从协议中删除委托要求,因为我收到编译器警告" lazy"在协议要求上是不允许的,一旦我在VC中声明它是懒惰的,就不符合委托要求。