繁体   English   中英

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

[英]Function not being called through delegate in Swift

在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的所有类似问题,但仍然无法解决。 谢谢!

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

networkController.networkControllerDelegate = self

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM