在iOS上存储对象 – 最佳解决scheme?
我正在构build一个博客的应用程序,用户可以保存他们最喜欢的职位。
当他们这样做,我想存储我的对象,其中包含:post的url,标题和图片的url。
我应该去UserDefaults
(以前NSUserDefaults
)或立即开始与Core Data
?
我应该去用户默认或立即开始与核心数据?
这里有更多的可能性:你也可以使用纯文件或plist,或者使用没有Core Data的sqlite。 答案取决于您计划存储的项目数量:
- 如果你打算存储1到20个项目,用户默认会正常工作
- 如果您打算存储20到200个项目,纯文件或plists将工作
- 如果您打算存储200多个项目,请使用Core Data或sqlite,具体取决于您使用这些技术的舒适程度。
由于文章的最爱通常不会是100K项目,那么我会使用NSDictionary
的项目,并将其存储到一个NSMutableArray
,然后将其保存到一个文件。 使用起来非常简单,您还可以将collections夹导出到文件甚至iCloud
以在设备之间共享。
NSMutableDictionary *item = [[ NSMutableDictionary alloc]init]; [item setObject:@"www.google.com" forKey:@"url"]; [item setObject:@"Google" forKey:@"title"]; //Add each item to the Favourites array //You should declare this outside of the "addToFavourites" function. NSMutableArray *Favourites = [[NSMutableArray alloc]initWithObjects: nil]; [Favourites addObject:item]; //Save the Favourites NSMutableArray to the file. if([Favourites writeToFile:path atomically:NO]) NSLog(@"Favourites are saved!");
- 无法创buildexternalDataReference临时文件
- 修改核心数据模型每次都需要新版本?
- NSFetchedResultsChangeUpdate而不是NSFetchedResultsChangeDelete
- 应用程序冻结CoreData保存
- 我如何使用NSManagedObject的新fetchRequest函数进行提取请求?
- 在复杂对象上定制NSSortDescriptor
- 我的xcmappingmodel中的自定义策略将不会被执行
- 启用iCloud时首次启动iOS应用程序将冻结
- 通过NSManagedObjectSubclass上的Swift Computed属性对NSFetchedResultsController进行sorting