UITableView 与 Xcode,获取 CoreData 问题

Posted

技术标签:

【中文标题】UITableView 与 Xcode,获取 CoreData 问题【英文标题】:UITableView with Xcode, Fetching CoreData Problem 【发布时间】:2022-01-14 00:05:54 【问题描述】:

我一直在为一个项目工作,但坚持如何将 CoreData 检索到我的表视图。这是我的代码:

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

func loadData()
       let requestData: NSFetchRequest<Person> = Person.fetchRequest()
       do 
           try
               personArr = context.fetch(requestData)
               try context.save()
           catch print ("Error retrieving data request \(error)")
           self.tableView.reloadData()
       
   

//  let DVC = segue.destination as! addPersonController
// numberOfRowsInSection ... cellForRowAt
// let cell = tableView.dequeueReusableCell(withIdentifier: "personCell", for: indexPath)
// cell.textLabel?.text = itemArray[indexPath.row].title > let person = personArr[indexPath.row]

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
      if(tableView.cellForRow(at: indexPath)?.accessoryType == .checkmark)
       tableView.cellForRow(at: indexPath)?.accessoryType = .none
           personArr[indexPath.row].finish = false
           //cell.accessoryType = .checkmark //forRaw
       
        tableView.deselectRow(at: indexPath, animated: true) //not selected
        savePerson()
       // let myPerson = PersonArr[indexPath.row].name
       // performSegue(withIdentifier: "personSegue", sender: myPerson)

这只是我应用的一些函数的一个例子。我担心的是将数据提取到未按预期提取的 personArr 中。有什么想法吗?

【问题讨论】:

【参考方案1】:

仔细查看代码会发现您正在catch 范围内重新加载表格视图,这几乎永远不会发生。

将该行移入do范围并删除无意义的行以保存上下文

func loadData()
   let requestData: NSFetchRequest<Person> = Person.fetchRequest()
   do 
       personArr = try context.fetch(requestData)
       self.tableView.reloadData()
    catch 
       print ("Error retrieving data request \(error)")
   

【讨论】:

以上是关于UITableView 与 Xcode,获取 CoreData 问题的主要内容,如果未能解决你的问题,请参考以下文章

xCode:UITableView 无法查看/访问所有单元格

ios开发Xcode使用UITableView完成学生信息及成绩的显示

UITableView indexPathForCell:在iOS10中使用Xcode8(Swift2.3)返回nil

在 Swift 2 和 Xcode 7 中使用来自 youtube 视频的 JSON 数据填充 UITableView

UITableview到细胞细节与图像

如何在 Xcode 中获取 UI 对象