Ios 在符合“标题”的对象初始化时设置委托
我试图设置ParseController的委托时出错,这是我的VC上的一个属性Ios 在符合“标题”的对象初始化时设置委托,ios,swift,Ios,Swift,我试图设置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()
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()
}
然后,当我试图在我的VC头中设置它时,我得到一个错误
var parseController:ParseController! = ParseController(delegate: self)
我可以使用此方法在viewDidLoad中进行设置,但理想情况下,我希望将委托设置在它所在的位置。我得到的错误是
键入“MainVC->->MainVC!”不符合协议“ParseControllerDelegate”
MainVC是我的viewController
我尝试过的事情:
将自己转换为ParseControllegate
自己
自己
我确信它很简单,但我想不出正确的语法。想出来了!
正确的语法是:
lazy var parseController:ParseController = ParseController(delegate: self)
*注意:我不得不从我的协议中删除委托要求,因为我得到了一个编译器警告,协议要求中不允许使用lazy,并且在我的VC中声明为lazy后,委托要求就没有得到满足
lazy var parseController:ParseController = ParseController(delegate: self)