我只将一个NSArray存储到NSUserDefaults中,但是此数组最终可能在内部包含许多对象。
使用NSUserDefaults可能会出现问题吗?
最佳答案
我要说使用Core Data只是因为您要简化处理两个或多个类别或“实体”中的一百多个数据对象时的工作。
使用Core Data意味着您在加载数据集时不会将整个数据集转储到内存中。相反,您使用的是所谓的faults
,它在需要加载其他关系和关联数据时会触发。
迁移数据也是Core Data的另一大好处。当您需要更改数据结构时,只需创建一个简单的迁移,它就会自动为您完成。相反,如果用户默认设置中包含NSArray
或NSDictionary
,则必须遍历整个过程并尝试更改数据结构或将旧的键名迁移到新的键名。绝非易事。
Core Data的另一个好处是,它可以与UITableView
和UICollectionView
无缝协作,以智能地搜索和加载数据集中的相关项目,从而有助于提高整体应用程序性能。全部通过NSFetchedResultsController
完成。
使用其中只有一百个人的NSArray
类型的People
应该没什么大不了的,只要NSUserDefaults
数组中没有存储大量关联数据,就可以使用People
。
老实说,我创建的每个需要除基本用户首选项之外都需要任何类型的数据存储的应用程序现在都使用Core Data。我不会在“属性列表”上浪费时间,也不会浪费用户的默认值,建议您不要使用。
关于iphone - 究竟是决定使用NSUserDefaults还是CoreData的“大量数据”是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430570/