【问题标题】:Storing persistent NSArray of model objects存储模型对象的持久 NSArray
【发布时间】:2014-08-06 20:03:52
【问题描述】:

我目前有一个模型对象的 NSArray,例如:

<__NSArrayM 0xb63ea40>(
<Car> 
   [carModel]: BMW
   [carYear]: January 1998
   [carName]: Series 3
</Car>,
<Car> 
   [carModel]: Audi
   [carYear]: September 2002
   [carName]: AX1245
</Car>
)

我想永久存储这些数据,以便即使应用离线或用户退出应用也可以访问。有没有关于如何有效地做到这一点的建议?

【问题讨论】:

  • Core Data 如果你想以完全正确的方式来做。但是,根据您的问题判断,以您当前的经验水平,仅使用 NSUserDefaults 可能会更容易和更快。

标签: ios objective-c model nsarray persistent-storage


【解决方案1】:

如果数组足够小,可以使用NSUserDefaults

例如:

// Store the array
[[NSUserDefaults standardUserDefaults] setObject:carArray forKey:@"carArrayKey"];

// Retrieve the array
NSArray *carArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"carArrayKey"];

如果数组有多个对象,您应该使用数据库。 Core Data 的学习曲线有点陡峭,但它为您处理了很多困难的事情(例如缓存),并允许您存储和调用整个对象图。

【讨论】:

  • 我最多可能会在数组中存储大约 20 个对象,但我明白你关于核心数据的观点。我会调查这两个,谢谢你的帮助。
  • NSUserDefaults 应该足以满足该大小的数组。如果您使用的是更大的数据集,或者如果您正在使用该信息填充 UITableView,Core Data 会产生奇迹!
【解决方案2】:

我只是将其添加为评论,但我没有声誉。

你为什么不直接使用 Core Data 来做这样的事情呢?您可以创建一个 Car 实体,然后使用 Core Data 对其进行管理。这将为应用保留您的数据。

【讨论】:

  • 这应该是可能的,但我认为 Core Data 为存储一些简单的数据增加了很大的复杂性。
猜你喜欢
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
相关资源
最近更新 更多