iOS數(shù)據(jù)本地化

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

FMDB - 潛意識(shí) - 博客園

它是對(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)存取,以防被有心人盜取。?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容