1.NSUserDefaults
2.歸檔 ??淺談iOS本地?cái)?shù)據(jù)保存 - 簡(jiǎn)書
使用NSKeyedArichiver /ɑ?ka?v/進(jìn)行歸檔、NSKeyedUnarchiver進(jìn)行接檔,這種方式會(huì)在寫入、讀出數(shù)據(jù)之前對(duì)數(shù)據(jù)進(jìn)行序列化、反序列化操作。
//歸檔:對(duì)象->NSData的過(guò)程
//解歸檔:NSData->對(duì)象的過(guò)程;
//對(duì)數(shù)據(jù)的操作效率不高,不建議存儲(chǔ)大量的數(shù)據(jù)
//任何對(duì)象實(shí)現(xiàn)歸檔需要遵循NSCoding 協(xié)議,NSArray NSString NSDictionary 已經(jīng)遵守了協(xié)議 直接歸檔即可;
BOOL isSuccessed= [NSKeyedArchiver archiveRootObject:array toFile: @""];
NSArray *tmp=(NSArray *) [NSKeyedUnarchiver unarchiveObjectWithFile:@""];
//任意對(duì)象的歸檔 ?需要遵守歸檔協(xié)議 NSCoping,并實(shí)現(xiàn)歸檔和解歸檔的方法(encodeWithCoder和initWithCoder)再分別對(duì)類中的變量進(jìn)行歸檔和解歸檔;
3.文件保存
4.數(shù)據(jù)庫(kù)sqlite3:
? ? fmdb
CoreData
CoreData提供了一種“對(duì)象-關(guān)系映射”的功能,能將OC對(duì)象轉(zhuǎn)化成數(shù)據(jù),保存Sqlite中。CoreData的好處就是能夠合理管理內(nèi)存,避免sql語(yǔ)句的麻煩(不用寫sql語(yǔ)句)。
5.NSUrlCache
6.KeyChain(鑰匙串)等多種方式 (與沙盒無(wú)關(guān))

fmdb
它是對(duì)libsqlite3框架的封裝,用起來(lái)的步驟與SQLite使用類似,并且它對(duì)于多線程的并發(fā)操作進(jìn)行了處理,所以是線程安全的。
FMDB框架中重要的框架類
FMDatabase
FMDatabase對(duì)象就代表一個(gè)單獨(dú)的SQLite數(shù)據(jù)庫(kù),用來(lái)執(zhí)行SQL語(yǔ)句
FMResultSet使用FMDatabase執(zhí)行查詢后的結(jié)果集
FMDatabaseQueue用于在多線程中執(zhí)行多個(gè)查詢或更新,它是線程安全的
2.keychain
SFHFKeychainUtils
相比于NSUserDefaults來(lái)說(shuō),KeyChain保存更為安全,而且KeyChain里面保存的數(shù)據(jù)不會(huì)因?yàn)閍pp刪除而丟失。
KeyChain還有一個(gè)用途,就是替代UDID。UDID已經(jīng)被廢除了,所以只能用UUID代替,所以我們可以把UUID用KeyChain保存。
來(lái)源:iOS Keychain(鑰匙串) 原理和APP之間共享信息(例如:賬號(hào)密碼) - freestyle個(gè)人頁(yè)面 - 開(kāi)源中國(guó)
##關(guān)于共享 Keychain的數(shù)據(jù)可以透過(guò)Group Access的方式,讓資料可以在App間共享,Google系列的App (Gmail、Google+、日歷…)就是通過(guò)這樣的方式來(lái)記錄使用者登入信息,只要使用者在其中一個(gè)App中完成登入了,其他的App也可以讀取到同相的登入咨詢進(jìn)行登錄。 ###進(jìn)入Capabilities,將Keychain打開(kāi)?

開(kāi)啟Keychain后,會(huì)自動(dòng)新增一個(gè)Keychain Group,使用的是Bundle Identifier。 同時(shí)也會(huì)自動(dòng)新增一個(gè)entitlements文件,里面也會(huì)有一個(gè)Access Group,名為 $(AppIdentifierPrefix)+你的bundleID?

(AppIdentifierPrefix)可以是開(kāi)發(fā)者的代號(hào)需要登錄才會(huì)有,也就是開(kāi)發(fā)者證書后小括號(hào)的內(nèi)的英文數(shù)字組合。使用$(AppIdentifierPrefix)只能被同一個(gè)開(kāi)發(fā)者賬號(hào)的app來(lái)存取,以防被有心人盜取。?