gpt4 book ai didi

Swift TableViewDataSource 分离其他类

转载 作者:行者123 更新时间:2023-11-28 06:00:04 24 4
gpt4 key购买 nike

我有两个例子

首先

override func viewDidLoad() {
super.viewDidLoad();
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.dataSource = TableViewDataSource();
}

第二个

var dataSource:TableViewDataSource!;

override func viewDidLoad() {
super.viewDidLoad();
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
dataSource = TableViewDataSource();
tableView.dataSource = dataSource;
}

第一个示例不起作用,但第二个示例有效。这些不一样吗?两个例子有什么区别?

最佳答案

第一个不行,因为你必须给它设置一个强引用

tableView.dataSource = TableViewDataSource();

其他人在这里

var dataSource:TableViewDataSource!;

//

如果您查看数据源委托(delegate)实现文件,它是这样声明的

weak open var dataSource:UITableViewDataSource?

仔细看weak,所以它不会保留分配给它的变量,这就是必须强引用其他类实例的原因

enter image description here

关于Swift TableViewDataSource 分离其他类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50091646/

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