簡體   English   中英

除了sqlite3,CoreData和NSUserDefaults之外,iPhone OS中最容易處理的數據持久技術是什么?

[英]Besides sqlite3, CoreData and NSUserDefaults, what are the most easy to handle data persistance techniques in iPhone OS?

我認為sqlite3對於我的目的來說有點過於復雜。 我有一個非常小的應用程序,只需要用戶輸入很少的內容。 輸入是浮點值,日期和整數。 我會說即使是一個核心用戶也會使用該應用生成不超過10 kb的數據。

使用計算器示例可以很好地描述對象圖。 想象一下存儲所有計算的計算器。 什么都不酷/特別。 對象圖是這樣的:一個NSMutableArray,它存儲MyCalculationData對象的實例。 每個MyCalculationData對象只存儲最簡單的東西:使用的數學運算(由一個以編程方式映射到某個東西的整數標識,即“減號”或“除法”),輸入的值為CGFloat,一個時間戳(只是一個大的雙倍,我認為)。

最后,整個NSMutableArray表示與該計算器的一個會話,用戶可以隨時重新打開它。 它存儲在另一個包含所有這些計算會話的NSMutableArray中。

從理論上講,這與我的應用程序類似。

那有什么選擇呢?

sqlite3:太難用了。 真。 這很難,就像吃20周齡的面包一樣。

sqlite3 + FMDB:聽起來確實不錯。 有一個objective-c包裝類來擺脫所有這些c >> objective-c >> c轉換和限制。 但是:沒有找到文檔。 沒有找到例子。 沒有教程。 使用不多/沒有多少討論。

CoreData:可能在一年內,但目前還沒有。 不要相信統計數據。 不會這么快升級到3.0。

有沒有人對NSFooBarSerialization之一有很好的經驗?

看看NSKeyedArchiver / Unarchiver。 只要陣列中的所有內容都符合NSCoding協議(NSStrings和NSNumbers已經完成),您就可以將陣列保存到磁盤,如下所示:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myArray];
[data writeToFile:@"/a/path/to/myFile" atomically:YES];

您可以像這樣加載它:

NSData *data = [NSData dataWithContentsOfFile:@"/a/path/to/myFile"];
NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithData:data];

對於像您這樣的簡單應用程序,此方法簡單易行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM