gpt4 book ai didi

ios - TableView 不显示来自 Realm 的数据

转载 作者:行者123 更新时间:2023-11-28 14:19:08 26 4
gpt4 key购买 nike

我有一个问题:我的 tableView 没有显示来自 Realm 数据库的任何数据。但我想问题出在手机上。

class ClientViewController: UITableViewController {

@IBOutlet var table: UITableView!
var clientsInfo: Results<Client> {
get {
return realm.objects(Client.self)
}
}

override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(myCell.self, forCellReuseIdentifier: "cell")
table.delegate = self
table.dataSource = self
table.reloadData()
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: myCell.reuseIdentifier, for: indexPath) as! myCell
let info=clientsInfo[indexPath.row]
cell.todoLabel.text = info.firstName
return cell

}
}

class myCell: UITableViewCell {
@IBOutlet weak var label: UILabel!

static let reuseIdentifier = "cell"


@IBOutlet weak var todoLabel: UILabel!

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)

}
}

最佳答案

你的代码有几处错误,

首先:

你正在使用一个 UITableViewController,默认情况下它已经有一个 tableView,所以你不需要像以前那样声明一个新的 tableView

@IBOutlet var table: UITableView!

第二:

在您的 viewDidLoad 中,您正在为默认的 tableView 注册单元格,并将声明的表用于数据源和委托(delegate),这是行不通的。我建议您删除您创建的表并使用默认表,这样您的 viewDidLoad 将如下所示:

override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(myCell.self, forCellReuseIdentifier: "cell")
self.tableView.delegate = self
self.tableView.dataSource = self
}

和第三:

你错过了 :

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

关于ios - TableView 不显示来自 Realm 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52011339/

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