繁体   English   中英

对于给定的配置,我应该尝试使用NSUserDefaults还是转到CoreData?

[英]for the given configuration should I attempt to use NSUserDefaults or go to CoreData?

对于给定的配置,我需要能够存储,应该考虑使用NSUserDefaults还是转到CoreData?

iPhone的配置大致是这样的,请注意3个级别:

  • 物品( NSMutableArray
    • aString:NSString
    • aString2:NSString
    • 日期:NSDate
    • aDate2:NSDate
    • aBool:布尔
    • aTI1:NSTimeInterval
    • aTI2:NSTimeInterval
    • 关键字( NSMutableArray
      • 关键字:NSString
      • 关键字:NSString

PS对iPhone来说是新手,因此尚未花任何时间在任何特定的持久性方法上。

查看结构,我建议您使用NSDictionary将数据保存在特定键处。

是否使用Core DataNSUserDefault取决于您是希望将数据保存在plist上并在每次启动应用程序时可用,还是要在类之间共享数据而不将其保存在文件中。

NSUserDefaults和Core Data执行两项不同的任务,您应该选择一种适合您要保留的数据的任务。

尽管使用了历史名称,但NSUserDefaults仍用作应用程序首选项。 在旧的“下几天”中,有一组复杂的基于网络的首选项域,其中NSUserDefaults只是最底层/本地的首选项集。在iOS中,它们已成为首选项,而封闭的域已被删除或隐藏。 )如果您希望保留的数据与应用程序状态有关,例如用户对UI布局的选择(如字体或启动模式),上次打开的视图,上次查看的网页,则该信息应设为默认值。

相比之下,Core Data旨在实现Model-View-Controller设计应用程序(所有iOS应用程序都为该应用程序)的整个数据模型层。其主要任务不是持久性/保存,而是建模/模拟与应用程序的逻辑连接的逻辑和关系。数据。 实际上,模型层是应用程序逻辑的核心,而控制器和视图只是界面。

因此,Core Data对于保存像您一样的小数据块是过大的。 您当然可以做到,但这就像开车驶向QuickyMart运回一夸脱牛奶一样。

也许更重要的是,如果数据是应用程序状态数据,则它必须是用户默认值,以便(1)在应用程序启动时数据可用,以及(2)在应用程序中的任何位置都可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM