我应该使用Core Data还是NSCoding来保存表视图控制器的数据?

时间:2013-08-17 18:56:00

标签: ios core-data uitableview nscoding

这是一个非常基本的问题,但我已经搜索了一个满足我的情况并且发现很少的答案。

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

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

到目前为止,我已经探索过NSCoding / NSKeyed *和核心数据,NSCoding似乎是一个很好的计划,但我不确定它是否适合30个自定义对象条目(每个条目有640x320图片和几个字符串)。同时,使用简单集合对象的核心数据似乎构建了一个壁橱的大厦。我也考虑过将视图控制器放在内存中,但这似乎太浪费了。此外,NSUserDefaults似乎也不适合这项工作。即使应用程序处于前台,UIKit状态保存技术也能正常工作吗?最后,NSURLCache是​​保存tableview数据的好方法吗?

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

1 个答案:

答案 0 :(得分:1)

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

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