概要
iOS常用的持久化存儲(chǔ)方案一般有:NSUserDefault、Keychain,File,數(shù)據(jù)庫等幾種方案邑遏。
NSUserDefault
- 應(yīng)用范圍:應(yīng)用程序配置信息佣赖,小規(guī)模的數(shù)據(jù)
Keychain
- 應(yīng)用范圍:需要被加密的一些信息如密碼等
- 使用詳解參見iOS Keychain總結(jié)
File
包括plist,archive,stream等幾種
- plist:結(jié)構(gòu)化的數(shù)據(jù),方便查詢
- Archive:不常用但大量的數(shù)據(jù)记盒,或讀取后希望直接對(duì)象化的數(shù)據(jù)憎蛤,因?yàn)锳rchive會(huì)將對(duì)象及其對(duì)象關(guān)系序列化,以至于讀取數(shù)據(jù)的時(shí)候需要Decode很花時(shí)間纪吮,Decode的過程可以是解壓俩檬,也可以是對(duì)象化,這個(gè)可以根據(jù)具體<NSCoding>
中的實(shí)現(xiàn)來決定碾盟。 - Stream:一般的文件存儲(chǔ)棚辽,如圖片等,適合于經(jīng)常使用冰肴,但數(shù)據(jù)量又不是很大的屈藐。
NSUserDefault和plist的異同
- 異
- NSUserDefault:少量數(shù)據(jù),是對(duì)Plist文件的封裝熙尉,應(yīng)用程序配置信息如用戶登錄后的偏好設(shè)置
- 使用方法參見NSUserDefault用法
- plist:下載好的量大的數(shù)據(jù)
- NSUserDefault:少量數(shù)據(jù),是對(duì)Plist文件的封裝熙尉,應(yīng)用程序配置信息如用戶登錄后的偏好設(shè)置
- 同
- 實(shí)質(zhì)都是plist估盘,只能存取特定類型的數(shù)據(jù):
NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary.
如果想要存儲(chǔ)其它類型,需要將打包成NSData
類型骡尽。
- 實(shí)質(zhì)都是plist估盘,只能存取特定類型的數(shù)據(jù):
數(shù)據(jù)庫
包括基于數(shù)據(jù)庫的SQLite遣妥、CoreData。