在符合"标题"的对象初始化时设置委托。

时间:2015-01-25 19:54:37

标签: 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()

}

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。

我尝试的事情:

  • 投射(自我为ParseControlleDelegate)
  • 自()
  • 自<!/ LI>

我确定它很简单,但我无法弄清楚正确的语法。

1 个答案:

答案 0 :(得分:0)

想出来! 正确的语法是:

lazy var parseController:ParseController = ParseController(delegate: self)

*注意:我必须从协议中删除委托要求,因为我收到编译器警告&#34; lazy&#34;在协议要求上是不允许的,一旦我在VC中声明它是懒惰的,就不符合委托要求。