假设我正在构建一个显示联系人 UITableView 的应用程序。用户的联系人存储在远程服务器上。我从服务器获取用户的联系人并将它们存储在 Core Data 中。
我的 UITableViewController 加载并从 Core Data 中获取一组 NSManagedObject 子类(名为 ContactVO)。我使用这个 ContactVO 数组来填充我的 UITableView。然后我向服务器发出请求,以提取用户的最新联系人列表。当我收到来自服务器的响应时,我会从我的 Core Data 存储中删除所有联系人,然后插入从服务器数据创建的联系人。此时,我通知我的 UITableViewController 数据已更改,并通过委托方法将新联系人传递给它。
问题:一旦我从 Core Data 中删除联系人,对存储在 UITableViewController 中的 ContactVO 的引用就是垃圾。
这里的想法是让表格视图始终允许用户交互,但始终显示可用的最新联系人。
我尝试过的事情:
创建一个与 ContactVO 具有所有相同属性的类(Contact),并使用从 Core Data 获取的数据填充此类的实例,然后将 Contact 对象数组返回到我的 UITableViewController
为获取的每个 ContactVO 创建一个 NSDictionary 并将一个字典数组返回到我的 UITableViewController
必须有比这两种方法更好的方法。存储 fetch 请求结果的首选方法是什么?