415,數(shù)據持久化的幾種方式(面試點:NSUserDefaults衅檀,plist招刨,keychain(用于本地重要數(shù)據的存儲,將數(shù)據加密后存儲在本地更安全.如:密碼,秘鑰,序列號等.當你刪除APP后...

  • NSUserDefaults
  • plist
  • keychain(鑰匙串)
  • 歸檔
  • 沙盒
  • 數(shù)據庫


    image.png
1.NSUserDefaults

NSUserDefaults用于存儲用戶的偏好設置用戶信息,如用戶名,是否自動登錄,字體大小等.
數(shù)據自動保存在沙盒的Libarary/Preferences目錄下.
NSUserDefaults將輸入的數(shù)據儲存在.plist格式的文件下,這種存儲方式就決定了它的安全性幾乎為0,所以不建議存儲一些敏感信息如:用戶密碼,token,加密私鑰等!
它能存儲的數(shù)據類型為:NSNumber(NSInteger、float哀军、double)沉眶,NSString,NSDate排苍,NSArray沦寂,NSDictionary,BOOL.
不支持自定義對象的存儲.
使用注意點:

  • NSUserDefaults存儲的數(shù)據都是不可變的,想將可變數(shù)據存入需要先轉為不可變才可以存儲.
  • NSUserDefaults是定時把緩存中的數(shù)據寫入磁盤的淘衙,而不是即時寫入传藏,為了防止在寫完NSUserDefaults后程序退出導致的數(shù)據丟失,可以在寫入數(shù)據后使用synchronize強制立即將數(shù)據寫入磁盤.
2.plist

屬性列表文件彤守,全名是Property List毯侦,這種文件的擴展名為.plist,因此具垫,通常被叫做plist文件侈离。它是一種用來存儲串行化后的對象的文件,用于存儲程序中經常用到且數(shù)據量小而不經常改動的數(shù)據筝蚕。
可以存儲的類型:NSNumber卦碾,NSString,NSDate起宽,NSData ,NSArray洲胖,NSDictionary,BOOL.
不支持自定義對象的存儲.

使用注意點:
如果需要存儲自定義類型的數(shù)據需要先進行序列化!

3.Keychain(鑰匙串)

用于本地重要數(shù)據的存儲,將數(shù)據加密后存儲在本地更安全.如:密碼,秘鑰,序列號等.當你刪除APP后Keychain存儲的數(shù)據不會刪除坯沪,所以在重裝App后绿映,Keychain里的數(shù)據還能使用。從ios 3.0開始腐晾,跨程序分享keychain變得可行而NSUserDefaults存儲的數(shù)據會隨著APP而刪掉.
使用keychain時蘋果官方已經為我們封裝好了文件KeychainItemWrapper,引入即可使用.當然也可是使用其他優(yōu)秀的第三方的封裝,比如ssKeychain叉弦。

4.歸檔(NSKeyedArchiver)

歸檔是iOS開發(fā)中數(shù)據存儲常用的技巧,歸檔可以直接將對象儲存成文件藻糖,把文件讀取成對象淹冰。
相對于plist或者userdefault形式,歸檔可以存儲的數(shù)據類型更加多樣巨柒,并且可以存取自定義對象樱拴。對象歸檔的文件是保密的凝颇,在磁盤上無法查看文件中的內容,更加安全疹鳄。
遵守NSCoding協(xié)議,并實現(xiàn)該協(xié)議中的兩個方法芦岂。如果是繼承瘪弓,則子類一定要重寫那兩個方法。因為子類在存取的時候禽最,會去子類中去找調用的方法腺怯,沒找到那么它就去父類中找,所以最后保存和讀取的時候新增加的屬性會被忽略川无。需要先調用父類的方法呛占,先初始化父類的,再初始化子類的懦趋。
保存數(shù)據的文件的后綴名可以隨意命名晾虑。

存儲類型 安全性 文件名后綴 數(shù)據量大小 應用場景)
NSUserDefaults 不安全 plist 用戶偏好設置,用戶名
plist 不安全 plist 不經常改動
keychain 安全 密碼仅叫、秘鑰帜篇、序列號
歸檔 安全 任意 緩存
5.沙盒

持久化在Document目錄下,一般存儲非機密數(shù)據诫咱。當App中涉及到電子書閱讀笙隙、聽音樂、看視頻坎缭、刷圖片列表等時竟痰,推薦使用沙盒存儲。因為這可以極大的節(jié)約用戶流量掏呼,而且也增強了app的體驗效果.
Application:存放程序源文件坏快,上架前經過數(shù)字簽名,上架后不可修改哄尔。
Documents: 保存應運行時生成的需要持久化的數(shù)據,iTunes同步設備時會備份該目錄假消。例如,游戲應用可將游戲存檔保存在該目錄。
tmp: 保存應運行時所需的臨時數(shù)據,使?完畢后再將相應的文件從該目錄刪除岭接。應用沒有運行時,系統(tǒng)也可能會清除該目錄下的文件富拗。iTunes同步設備時不會備份該目錄。
Library/Caches: 保存應用運行時生成的需要持久化的數(shù)據,iTunes同步設備時不會備份該目錄鸣戴。一般存儲體積大啃沪、不需要備份的非重要數(shù)據,比如網絡數(shù)據緩存存儲到Caches下窄锅。
Library/Preference: 保存應用的所有偏好設置创千,如iOS的Settings(設置) 應會在該目錄中查找應?的設置信息缰雇。iTunes同步設備時會備份該目錄

6.數(shù)據庫

存儲數(shù)據量較大的數(shù)據追驴,一般使用數(shù)據庫來存儲械哟。如:FMDB、CoreData殿雪、Realm暇咆、WCDB

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末丙曙,一起剝皮案震驚了整個濱河市爸业,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亏镰,老刑警劉巖扯旷,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異索抓,居然都是意外死亡钧忽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門纸兔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惰瓜,“玉大人,你說我怎么就攤上這事汉矿∑榉唬” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵洲拇,是天一觀的道長奈揍。 經常有香客問我,道長赋续,這世上最難降的妖魔是什么男翰? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮纽乱,結果婚禮上蛾绎,老公的妹妹穿的比我還像新娘。我一直安慰自己鸦列,他們只是感情好租冠,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著薯嗤,像睡著了一般顽爹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骆姐,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天镜粤,我揣著相機與錄音捏题,去河邊找鬼。 笑死肉渴,一個胖子當著我的面吹牛公荧,可吹牛的內容都是我干的。 我是一名探鬼主播同规,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼稚矿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了捻浦?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤桥爽,失蹤者是張志新(化名)和其女友劉穎朱灿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钠四,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡盗扒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了缀去。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侣灶。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖缕碎,靈堂內的尸體忽然破棺而出褥影,到底是詐尸還是另有隱情,我是刑警寧澤咏雌,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布凡怎,位于F島的核電站,受9級特大地震影響赊抖,放射性物質發(fā)生泄漏统倒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一氛雪、第九天 我趴在偏房一處隱蔽的房頂上張望房匆。 院中可真熱鬧,春花似錦报亩、人聲如沸浴鸿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赚楚。三九已至,卻和暖如春骗卜,著一層夾襖步出監(jiān)牢的瞬間宠页,已是汗流浹背左胞。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留举户,地道東北人烤宙。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像俭嘁,于是被迫代替她去往敵國和親躺枕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容