2013-04-01 40 views
0

我遇到以下问题。 我需要为一家餐厅提供应用程序,用户将能够选择一道菜,并添加喜欢,如更多的盐,薯条等相同的菜...该应用程序读取所有的菜肴和偏好在线。 我想在使用NSUserDefaults将请求发送到服务器之前临时保存这些请求。 有一些因素需要考虑:保存来自用户的请求

  1. 用户可以编辑请求。
  2. 用户可以删除请求。

什么是构建此应用程序的最佳方法? NSUserDefaults或CoreData?

在此先感谢。

+1

在我看来,你可以使用NSUserDefaults作为比Core Data更好的opcion,因为你管理的数据很小。但是,也许我会使用归档或propertyList,因为我认为NSUserDefaults更适合类似应用程序设置的应用程序。 – thxou

回答

1

都没有。我会说实现一个实现NSCoding协议的自定义类。 NSCoding需要您实现两个方法:

- (id)initWithCoder:(NSCoder *)aDecoder; 
- (void)encodeWithCoder:(NSCoder *)aCoder; 

从那里,你会使用类似[NSKeyedArchiver archiveRootObject:myCustomDishArray toFile:[self dishesFilePath]];

最Cocoa类已经实现了NSCoding协议,像NSArray的,所以如果你有实例的数组你的自定义类,你可以存档数组。 有关NSCoding协议Here的更多信息。

+0

只要你没有实体之间的关系,数据集足够小以适应内存,更新很少,这就足够了。 –

1

核心数据主要用于处理海量数据,我个人认为您不需要将它用于餐厅。

1

如果您不熟悉CoreData并且数据量相对较少,那么使用NSUserDefaults可能会更好。
但是,我认为正确的方法是使用CoreData,因为它更加灵活和高效,并且您保存的数据具有上下文无关用户默认值(我将使用用户默认值仅用于保存应用程序范围的数据,设置,而不是数据记录)。 CoreData更新,插入和删除数据记录更方便。