Iphone 保存来自用户的请求

Iphone 保存来自用户的请求,iphone,ios,objective-c,Iphone,Ios,Objective C,我有以下问题。 我需要为一家餐厅申请,用户将能够选择一道菜,并为同一道菜添加偏好,如,更多的盐,薯条等。。。该应用程序在线读取所有菜肴和偏好。 我正在考虑使用NSUserDefaults在将请求发送到服务器之前暂时保存请求。 有一些因素需要考虑: 用户可以编辑请求 用户可以删除请求 构建此应用程序的最佳方法是什么?NSUserDefaults还是CoreData 提前感谢。核心数据主要用于处理海量数据,我个人认为您不需要将其用于餐厅。核心数据主要用于处理海量数据,我个人认为您不需要将其用于餐厅。

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

  • 用户可以编辑请求
  • 用户可以删除请求
  • 构建此应用程序的最佳方法是什么?NSUserDefaults还是CoreData


    提前感谢。

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

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

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

    如果您不熟悉CoreData并且数据项数量相对较少,则最好使用NSUserDefaults。
    然而,在我看来,正确的做法是使用CoreData,因为它更灵活、更高效,而且您保存的数据与用户默认值上下文无关(我将使用用户默认值仅用于保存应用程序范围的数据和设置,而不是数据记录)。
    使用CoreData更新、插入和删除数据记录要方便得多。

    两者都不方便。我想说实现一个实现NSCoding协议的自定义类。NSCoding要求您实现两种方法:

    - (id)initWithCoder:(NSCoder *)aDecoder;
    - (void)encodeWithCoder:(NSCoder *)aCoder;
    
    从这里开始,您将使用类似于
    [NSKeyedArchiver archiveRootObject:myCustomDishArray-toFile:[self-dishesFilePath]

    大多数Cocoa类已经实现了NSCoding协议,比如NSArray,因此如果您有一个自定义类的实例数组,那么您可以只归档该数组。
    有关NSCoding协议的更多信息。

    两者都不是。我想说实现一个实现NSCoding协议的自定义类。NSCoding要求您实现两种方法:

    - (id)initWithCoder:(NSCoder *)aDecoder;
    - (void)encodeWithCoder:(NSCoder *)aCoder;
    
    从这里开始,您将使用类似于
    [NSKeyedArchiver archiveRootObject:myCustomDishArray-toFile:[self-dishesFilePath]

    大多数Cocoa类已经实现了NSCoding协议,比如NSArray,因此如果您有一个自定义类的实例数组,那么您可以只归档该数组。
    有关NSCoding协议的更多信息。

    在我看来,您可以使用NSUserDefaults作为比核心数据更好的选项,因为您管理的数据很小。但是,也许我会使用归档或propertyList,因为我认为NSUserDefaults更适合应用程序设置。在我看来,您可以使用NSUserDefaults作为比核心数据更好的选项,因为您管理的数据很小。但是,也许我会使用归档或propertyList,因为我认为NSUserDefaults更适合应用程序设置之类的设置。只要实体之间没有关系,数据集就足够小,可以放入内存,而且更新很少。只要实体之间没有关系,数据集足够小,可以放在内存中,更新很少,这就足够了。