0

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

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

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

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

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

4

1 回答 1

1

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

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

于 2013-08-17T21:49:59.657 回答