gpt4 book ai didi

swift - 委托(delegate)不断返回 nil

转载 作者:行者123 更新时间:2023-11-30 13:21:52 25 4
gpt4 key购买 nike

在我的 View Controller 中,我已经这样设置了。

protocol MenuDelegate {
func updateIndexOfMenuExpanded(index: Bool)
}

class ViewController: UIViewController,UITableViewDataSource, UITableViewDelegate {
var delegate : MenuDelegate?

func performaction() -> Void{
delegate!.updateIndexOfMenuExpanded(false)
}
}

在我的基础 View Controller 中

class BaseViewController: UIViewController, MenuDelegate{

func updateIndexOfMenuExpanded(index: Bool){
self.menuIsExpanded = index
}
}

请帮忙。谢谢。

最佳答案

您必须先设置委托(delegate)。

let viewController = ViewController()
let baseViewController = BaseViewController()
viewController.delegate = baseViewController

明智的做法是使委托(delegate)成为弱引用,并且不要使用 ! 强制展开。

class ViewController: UIViewController,UITableViewDataSource, UITableViewDelegate {
weak var delegate : MenuDelegate?
func performaction() {
delegate?.updateIndexOfMenuExpanded(false)
}
}

关于swift - 委托(delegate)不断返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37696981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com