在tableview单元格上打印CoreData

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在tableview单元格上打印CoreData相关的知识,希望对你有一定的参考价值。

我这里有2个不同的测试用例。在案例1中,这是我用来从CoreData打印全部条目的工作。我试过在app2中做同样的事情,但它不起作用。我想要做的就是在每个单独的单元格中包含所有核心数据条目。

APP1

override func viewDidLoad() {
    super.viewDidLoad()
    user = coreDataHandler.getSortedData()

    for i in user! {
        displayL.text = String(i.username)
    }
}

APP2

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    user = coreDataHandler.getSortedData()

    return user!.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = cctv.dequeueReusableCell(withIdentifier: "cell")

    for i in user! {
        cell?.textLabel?.text = String(describing: i.username)
        return cell!
    }

    return cell!
}
答案

如果你想打印每个单元格中的所有用户条目,那么你可以尝试下面的解决方案,

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    user = coreDataHandler.getSortedData()

    return user!.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell")

    for i in user! {
        cell?.textLabel?.text = String(describing: i.username)
    }

    return cell!
}

如果你想在每个单元格中打印每个条目,请尝试以下解决方案,

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    user = coreDataHandler.getSortedData()

    return user!.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell")

    let currentUser  = user[indexPath.row]

    cell?.textLabel?.text = String(describing: currentUser.username)

    return cell!
}

注意:这只是一个伪可能包含错误

另一答案

你做错了

这样做

let user: [UserType] = []

override func viewDidLoad() {
    super.viewDidLoad()
    user = coreDataHandler.getSortedData()
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return user.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
    let currentUser = user[indexPath.row]
    cell?.textLabel?.text = "(currentUser.username)"
    return cell!
}

你不需要在cellForRowAt委托中再次迭代,因为它是自我迭代的delgate。

为了安全编码,请使用guard letif let来展开值。在任何时间强制解包导致应用程序崩溃。

以上是关于在tableview单元格上打印CoreData的主要内容,如果未能解决你的问题,请参考以下文章

如何将uicollectionview单元格合并到tableview第一个单元格上

在目标 c 中按住 tableview 单元格上的按钮状态单击

数据不会从 JSON 解析加载到某些 Tableview 单元格上

如何在 ipad 中的 tableview 单元格上显示弹出框单击

仅当 indexPath 对象可用时,如何在 tableview 单元格上使用标签

由于可重用性问题,tableview 单元格上的图像重复