ios - 我应该使用 Core Data 还是 NSCoding 来保留 TableView Controller 的数据?

标签 ios core-data uitableview nscoding

这是一个非常基本的问题,但我到处寻找适合我情况的答案,但发现很少。

我正在使用 ECSlidingviewController 来制作左侧抽屉/菜单控件,例如 Facebook、Pulse 等。 (实际上很惊讶这不是Apple SDK的一部分)

当我从菜单 Controller 中选择一个选项时,它会弹出当前的顶部 Controller ,并推送菜单选择的 View Controller 。我的主视图是本地位置的表格 View ,每次加载 View 时从服务器检索本地位置非常昂贵/耗时,所以我想保存最后加载的集合对象(包装字典的我的对象)使用简单的访问器方法)。

到目前为止,我已经探索了 NSCoding/NSKeyed* 和 Core Data,NSCoding 似乎是一个不错的计划,但我不确定它是否适合 30 个自定义对象条目(每个条目都有 640x320 图片和一些字符串) )。同时,将核心数据用于简单的集合对象似乎就像为壁橱 build 一座豪宅。我还考虑过尝试将 View Controller 保留在内存中,但这似乎太浪费了。另外, NSUserDefaults 似乎也不适合这项工作。即使应用程序位于前台,UIKit 状态保存技术也会起作用吗?最后 - NSURLCache 是否是保存 tableview 数据的良好解决方案?

我想要的是一种快速且标准化的方法来重新加载我的 TableView 的最后一个数据源,而无需任何网络请求或 100 行代码。

最佳答案

我会使用核心数据和获取的结果 Controller 。如果您从主详细信息模板开始,那么代码将全部为您生成。主要好处是保存对您来说是透明的,内存管理也是透明的(您只需将获取请求页面大小设置为合适的值)。

使用 NSCoding 的解决方案可以工作,并且对于 30 个结果可能会更快。如果你知道你的数量永远不会超过 30 个,那么它可能会很有吸引力。但是您需要自己编码(并保存)和解码,并且您仍然拥有基本相同的表数据源代码。

关于ios - 我应该使用 Core Data 还是 NSCoding 来保留 TableView Controller 的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18292293/

相关文章:

ios - Xcode dataSource 必须从 tableView :cellForRowAtIndexPath 返回一个单元格

iOS 位置权限请求仅显示英文,而其他按键正常工作

iOS:如何使用整数值对 TableView 进行排序但想要显示字符串值?

ios - iOS swift 尝试使用 Ensembles 时出错

ios - 核心数据架构

Swift:选择 UICollectionViewCell(在 UITableViewCell 内)时如何使用 Segue

ios 8 Swift - 带有嵌入式 CollectionView 的 TableView

ios - 如何在 uipickerview (swift 4) 上居中工具栏按钮

ios - 使用可达性检查 VPN 状态

iOS:带有 subview Controller 的自动布局