在iOS上存储对象 - 最佳解决方案?

时间:2013-01-01 02:46:45

标签: ios uitableview core-data nsuserdefaults

我正在为博客构建应用,用户可以保存自己喜欢的帖子。

当他们这样做时,我想存储我的对象,其中包含:帖子的URL,标题和图片URL。

我应该去UserDefaults(以前NSUserDefaults)还是马上开始Core Data

2 个答案:

答案 0 :(得分:6)

  

我应该使用用户默认值还是立即开始使用Core Data?

这里有更多的可能性:你也可以使用普通文件或plist,或者使用没有Core Data的sqlite。答案取决于您计划存储的项目数量:

  • 如果您计划存储1到20个项目,则用户默认值可以正常工作
  • 如果您计划存储20到200个项目,普通文件或plist将起作用
  • 如果您计划存储200多件商品,请选择Core Data或sqlite,具体取决于您使用其中一种技术的舒适程度。

答案 1 :(得分:1)

由于文章的收藏夹通常不会是100K商品,因此我会将NSDictionary用于商品并将其存储到NSMutableArray中,然后将其保存到文件中。它使用简单,您还可以将收藏夹导出到文件甚至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!");