gpt4 book ai didi

ios - 加载托管对象数据

转载 作者:行者123 更新时间:2023-11-30 14:16:43 25 4
gpt4 key购买 nike

我的应用中有两个实体文件夹列表。第一个 View Controller 是一个带有文件夹实体列表的 TableView 。当点击表格 View 单元格时,我会转到另一个表格 View ,显示该文件夹的所有列表(有序集)。当从 TableView 单元格中进行排序时,我将引用传递给第二个 View Controller 。

  let destinationVC = segue.destinationViewController as! ListViewController
let indexPath = UITable.indexPathForSelectedRow()
let selectedList = folders[indexPath!.row]
destinationVC.selectedFolder"

但是,在我的第二个 View Controller 中,我没有使用获取请求,而是使用对文件夹的引用。我有一个将数据加载到数组中的函数,我用它来填充 TableView 。

var folderListArray = [List]()

func loadData() {

var unsortedList = NSMutableArray()
for singleItem in selectedFolder.list {
let loopNote = singleItem as! List
unsortedList.addObject(loopNote)
}
let sortDescriptor = NSSortDescriptor(key: "date", ascending: true)
guestlistArray = unsortedList.sortedArrayUsingDescriptors([sortDescriptor]) as! [list]

self.tableView.reloadData()

}

我在 viewWillAppear 和 viewDidAppear 中使用函数 loadData。但是,当我使用模式添加到列表然后关闭模式时, TableView 不会重新加载数据。它保存正确,我只需返回到之前的 View Controller 并再次继续即可查看添加的项目。

这是为什么呢?保持此类托管对象数据同步的最佳方法是什么?

最佳答案

确保你

  1. 将新的列表分配给正确的文件夹
  2. 保存上下文。

那么你的重新加载方法应该可以工作。

此外,设置一个断点来检查您的方法是否被调用。如果没有,请考虑实现委托(delegate),这是处理编辑或添加数据的详细 Controller 的标准模式。

最后,考虑简化排序代码。您实际上是在制作数据的两个副本,这实际上是没有必要的。我建议您向 Folder 类添加一个函数以返回排序列表。这可以是使用 NSSet 的 API sortedArrayUsingDescriptors 的单行代码。

关于ios - 加载托管对象数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31076253/

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