數據存儲之我見

引言:

iOS的數據存儲與緩存涉及到的知識方方面面,有蠻多需要去好好了解了解,那麼做爲移動設備的應用,離線數據的重要性,相對於PC應用顯得重要的多.

文中介紹的方法,不一定都是最好的,但都是目前博主都在使用的技術,如果有更好的方法和技術,不吝賜教!


參考資料: 

1:使用Keychain存儲用戶敏感信息

http://blog.csdn.net/tianyitianyi1/article/details/7643365

2:NSUserDefaults簡介及使用

http://qing.blog.sina.com.cn/2739139371/a343f32b33001kpq.html


介紹:

1: KeyChain 

KeyChain是用於在iOS中存儲敏感信息時的一個推薦型方案.
如果直接使用其API,還是非常繁瑣的,爲此網上已經有牛人,對此其API進行了封裝,我們學會使用就行了.  
兩部操作即可:
第一步:引入系統框架文件  Security.framework
第二步:導入開源框架 SFHFKeychainUtils 
參考鏈接中有源代碼下載地址,這裏就不提供了, 
那麼我這裏提供一個 我使用過後的一個優化版:Demo
使用非常簡單, 4個方法:添加,刪除,查詢,查詢全部 
注:KeyChain的信息存儲不會因爲App的被刪除而丟失數據,這個有點類似Windows的註冊表的概念差不多.

2:Property List (熟稱的Plist)

Property List是在App裏面存儲一些較爲簡單且零散的鍵值對的一個推薦型方法
以下代碼 分別用於創建或修改Property List文件內部值:
[csharp] view plaincopy
  1. //通過文件路徑獲取  
  2. NSMutableDictionary *attachmentInfoDictionary  = [[NSMutableDictionary alloc] initWithContentsOfFile:attachmentInfoPathString];  
  3. //判斷是否成功從指定的路徑中取到Plist 文件,如果沒有,則實例化一個新的供寫入  
  4. if (attachmentInfoDictionary == nil) {  
  5.     attachmentInfoDictionary = [[NSMutableDictionary alloc] init];  
  6. }  
  7. [attachmentInfoDictionary setObject:@"值" forKey:@"鍵"];  
  8. NSLog(@"%@",attachmentInfoDictionary);  
  9. //返回是否寫入成功  但是需要確保指定的路徑結構存在,否則肯定失敗  
  10. [attachmentInfoDictionary writeToFile:attachmentInfoPathString atomically:NO];  
  11. [attachmentInfoDictionary release];  

3:NSUserDefaults

NSUserDefaults是系統級Property List文件,裏面存儲一些App配置參數,當然,我們也可以加一些自己的值進行,用戶和Property List幾乎一樣
1:查詢NSUserDefaults 裏面全部存儲的值,這裏面可以看到我們開發時存儲的:
[csharp] view plaincopy
  1. [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]  
2:當對NSUserDefaults 修改的值以後,需要調用同步函數實現數據持久化
[csharp] view plaincopy
  1. [[NSUserDefaults standardUserDefaults] synchronize];  

4:Core Data

Core Data是對SQLite的封裝,以面向對象的方式與本地數據庫進行數據交互
Core Data的介紹參考這篇文章.

5:StackMob

StackMob是專爲移動App打造的後端雲存儲解決方案,是博主大力推薦使用的Baas平臺
StackMob的使用參考這篇文章.

6:SQLite
SQLite 的使用參考FEDM


總結:

信息化離不開數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章