2013-01-01 32 views
3

我正在構建一個博客的應用程序,用戶可以保存他們最喜歡的帖子。在iOS上存儲對象 - 最佳解決方案?

當他們這樣做時,我想存儲我的對象,其中包含:帖子的網址,標題和圖片網址。

我應該爲UserDefaults(原NSUserDefaults)還是Core Data馬上開始?

回答

6

我應該去用戶默認值還是馬上開始使用核心數據?

這裏還有更多的可能性:你也可以使用純文件或plists,或者使用沒有Core Data的sqlite。答案取決於你打算存儲的項目數:

  • 如果您打算存儲1至20個項目,用戶默認設置會正常工作
  • 如果您打算存儲20到200項,純文本文件或plists將工作
  • 如果您計劃存儲200+項目,請使用Core Data或sqlite,具體取決於您使用這些技術的舒適程度。
+0

+1:數字可能不同,你(尤其是對違約/ Plist檔案數據問題的大小,但一般建議十分合理 –

+0

也有可能被寫入使用NSArchiver二進制文件... ID爲說20到200 –

+0

+1:聽起來像是對我的忠告,就我個人而言,我可能會使用核心數據方法,假設用戶可以喜歡很多這些項目......另外,使用MagicalRecord(請參閱https ://github.com/magicalpanda/MagicalRecord),核心數據很容易 –

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!"); 
+0

感謝您的示例代碼,現在確實計劃使用這個技巧來存儲我的用戶的最愛。 – sf89