iphone - 究竟是决定使用NSUserDefaults还是CoreData的“大量数据”是什么?

标签 iphone ios core-data nsarray nsuserdefaults

我只将一个NSArray存储到NSUserDefaults中,但是此数组最终可能在内部包含许多对象。

使用NSUserDefaults可能会出现问题吗?

最佳答案

我要说使用Core Data只是因为您要简化处理两个或多个类别或“实体”中的一百多个数据对象时的工作。

使用Core Data意味着您在加载数据集时不会将整个数据集转储到内存中。相反,您使用的是所谓的faults,它在需要加载其他关系和关联数据时会触发。

迁移数据也是Core Data的另一大好处。当您需要更改数据结构时,只需创建一个简单的迁移,它就会自动为您完成。相反,如果用户默认设置中包含NSArrayNSDictionary,则必须遍历整个过程并尝试更改数据结构或将旧的键名迁移到新的键名。绝非易事。

Core Data的另一个好处是,它可以与UITableViewUICollectionView无缝协作,以智能地搜索和加载数据集中的相关项目,从而有助于提高整体应用程序性能。全部通过NSFetchedResultsController完成。

使用其中只有一百个人的NSArray类型的People应该没什么大不了的,只要NSUserDefaults数组中没有存储大量关联数据,就可以使用People

老实说,我创建的每个需要除基本用户首选项之外都需要任何类型的数据存储的应用程序现在都使用Core Data。我不会在“属性列表”上浪费时间,也不会浪费用户的默认值,建议您不要使用。

关于iphone - 究竟是决定使用NSUserDefaults还是CoreData的“大量数据”是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430570/

相关文章:

ios - iOS:如何避免在搜索栏中输入特殊字符?

iphone - 使用 Between Predicate Statement 和 Float 时发生崩溃

iphone - iOS 初学者 : Screen orientation

iphone - 如何通过 AudioServicesSetProperty 设置 kAudioServicesPropertyIsUISound?

iphone - 如何在 iPhone 上捕获 MPMoviePlayer 进度条轨道事件

ios - 无法设置 SKView backgroundColor

iphone - UITableViewCell 中的 UILabel autoresizingMask

ios - Objective C - 单例静态方法覆盖不适用于多个子类

swift 多个 UITextField EditingDidEnd 导致应用程序崩溃

ios - NSFetchedResultsController 使加载 View Controller 非常慢