函数没有通过Swift中的委托调用

时间:2015-07-16 20:30:21

标签: swift delegates

在abc()完成执行后,我无法让应用程序执行changeCard()。这两个函数属于不同的类。这是下面的代码。任何帮助表示赞赏!

protocol NetworkControllerDelegate {
    func changeCard()
}

class NetworkController {
    var networkControllerDelegate: NetworkControllerDelegate?

    func abc () {
    //do something here
    networkControllerDelegate?.changeCard()
    }
}

class View: UIViewController, NetworkControllerDelegate {
    var networkController = NetworkController()

    func changeCard() {
    //do something here
    networkController.networkControllerDelegate = self
    }
}

我在过去几个小时内已经阅读了有关stackoverflow的所有类似问题,但仍然无法弄明白。谢谢!

1 个答案:

答案 0 :(得分:0)

尝试将以下行移动到视图控制器的viewDidLoad中,以便在使用之前设置委托。

networkController.networkControllerDelegate = self

另外,您可能想要考虑使NetworkController中的networkControllerDelegate变量变弱,以避免任何保留周期。