在iOS中使用Core Data并保存状态

时间:2011-07-15 11:07:46

标签: ios core-data

我已经阅读了教程,并找到了保存数据的不同方法,如纯SQL,核心数据,存档和NSUserDefaults。

我正在考虑创建一个将成为RPG的应用程序,我将使用不同的变量创建一个类。 必须通过App取消,iPhone启动和App更新来保存此类及其状态。

予。以前的哪些方法填满了这个?

我也有关于核心数据的问卷。 如果我只想存储一个变量,比如在一个实体中说一个日期。假设该属性名为dateJustNow,它是一个属性。

II。我是否必须为每个dateJustNow保存创建新行?或者还有其他方法只保存变量的一个状态并在需要时获取它吗? 也许我正在混合变量(单曲)和属性(集合)?

真诚的你

2 个答案:

答案 0 :(得分:1)

规则是:

  • 使用NSUserDefaults保存应用程序状态信息。这是关于应用程序本身的操作的信息,例如上次启动时间,首选字体,上次打开视图等。用户默认值是普遍可访问且快速但轻量级的。它们只能存储一些数据,而且不存储任何逻辑。
  • 使用核心数据来建模,管理和保存应用处理的实际数据和逻辑。核心数据管理大型复杂数据及其相关逻辑。

在游戏的情况下,您将使用NSUserDefaults保存有关应用程序操作的数据,例如用户可以设置应用将启动的视图的首选项。但是,编码游戏规则和游戏状态变化的实际逻辑和数据应该进入核心数据。

答案 1 :(得分:0)

对我来说,这听起来像是在寻找OR-mapper。直接使用SQLite来保存状态。如果你要编写一个多人在线角色扮演游戏,核心数据对于大量数据来说非常棒。

来自this回答:

  

尽管Core Data是Apple企业对象的后代   框架,一个与之紧密相关的对象关系映射器(ORM)   对于关系后端,Core Data不是ORM。事实上,这是一个   对象图管理框架。

此外,这是一个非常好的阅读:http://inessential.com/2010/02/26/on_switching_away_from_core_data