iOS 開(kāi)發(fā)中一般有如下幾種數(shù)據(jù)存儲(chǔ)方式,需要根據(jù)具體的業(yè)務(wù)場(chǎng)景,選擇合適的數(shù)據(jù)存儲(chǔ)方式。
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),夏津企業(yè)網(wǎng)站建設(shè),夏津品牌網(wǎng)站建設(shè),網(wǎng)站定制,夏津網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,夏津網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
用戶默認(rèn)設(shè)置 – 這種情況通常不需要用戶干預(yù),如游戲通關(guān)信息,Video播放記錄,退出之后下次進(jìn)入時(shí)恢復(fù)到退出時(shí)的情況。
設(shè)置束提供了一個(gè)通過(guò) iPhone、iPad的設(shè)置應(yīng)用程序進(jìn)行配置的接口。
直接訪問(wèn)文件系統(tǒng)讀寫(xiě)屬于當(dāng)前App的iOS文件系統(tǒng)部分的文件。
SQLite 數(shù)據(jù)庫(kù)是嵌入式的和輕量級(jí)的SQL數(shù)據(jù)庫(kù),SQLite 是由C實(shí)現(xiàn)的。
遠(yuǎn)端數(shù)據(jù)庫(kù)這個(gè)一般由App調(diào)用遠(yuǎn)端的RESTFulWCF服務(wù),將JSON、XML 數(shù)據(jù)傳遞給遠(yuǎn)端的 Web 服務(wù),讀寫(xiě)數(shù)據(jù)庫(kù)的邏輯完全在 Web 服 務(wù)端實(shí)現(xiàn)。
一般獲取本地?cái)?shù)據(jù)是從plist文件中讀取JSON數(shù)據(jù)。
讀取數(shù)據(jù):
NSString
*plistPath
=
[[NSBundle
mainBundle]
pathForResource:@"city"
ofType:@"plist"];
NSArrary
*cityArray
=
[[NSArray
alloc]initWithContentsOfFile:plistPath];
這里的cityArray根據(jù)你存在plist中的數(shù)據(jù)類型來(lái)確定,如果plist中是字典類型,那么你這里需要使用NSDictionary去存儲(chǔ)你從plist中獲取到的數(shù)據(jù)。
至于本地存儲(chǔ)數(shù)據(jù)的話根據(jù)你項(xiàng)目的具體功能來(lái)設(shè)計(jì),一般的小型數(shù)據(jù)如用戶昵稱、手機(jī)號(hào)等使用NSUserDefault即可,但是如果是大量數(shù)據(jù)如賬單類app中的賬單數(shù)據(jù)那么此時(shí)需要考慮使用sqlite3去存儲(chǔ)數(shù)據(jù),至于密碼之類就需要使用NSKeydArchiver去存儲(chǔ)。
一、 首先簡(jiǎn)述一下 Userdefault (介紹使用了該作者的文章)
1.適合存儲(chǔ)輕量級(jí)的本地?cái)?shù)據(jù)。
比如用戶id? 用戶的登錄token什么的? 這種比較短小的數(shù)據(jù)
2.NSUserDefaults支持的數(shù)據(jù)格式有:NSNumber、NSData、NSDate、NSString、NSArray、NSDictionary、BOOL。
3.以鍵值對(duì)的形式進(jìn)行存儲(chǔ)。
4.存儲(chǔ)時(shí)間為整體應(yīng)用程序的存儲(chǔ)時(shí)間,如果想需要?jiǎng)h除,需要?jiǎng)h除整體應(yīng)用程序。
?? 存儲(chǔ)聲明的時(shí)候因?yàn)槭莿?dòng)態(tài)的,先聲明再調(diào)用,聲明存儲(chǔ)的時(shí)候不會(huì)出現(xiàn)異常提示,但執(zhí)行的時(shí)候會(huì)出現(xiàn) ? --斷言--(因?yàn)榇鎯?chǔ)對(duì)象在這里編譯是nil)
iOS本地化存儲(chǔ)的數(shù)據(jù)保存在沙盒中。
(1) Documents :iTunes會(huì)備份該目錄。一般用來(lái)存儲(chǔ)需要持久化的數(shù)據(jù)。
(2) Library/Caches :緩存,iTunes不會(huì)備份該目錄。內(nèi)存不足時(shí)會(huì)被清除,應(yīng)用沒(méi)有運(yùn)行時(shí),可能會(huì)被清除。一般存儲(chǔ)體積大、不需要備份的非重要數(shù)據(jù)。
(3) Library/Preference :iTunes同會(huì)備份該目錄,可以用來(lái)存儲(chǔ)一些偏好設(shè)置。
(4) tmp : iTunes不會(huì)備份這個(gè)目錄,用來(lái)保存臨時(shí)數(shù)據(jù),應(yīng)用退出時(shí)會(huì)清除該目錄下的數(shù)據(jù)。
獲取沙盒文件:
其中:
??可以把字典或數(shù)組直接寫(xiě)入到文件中。另外, NSString 、 NSData 、 NSNumber 等類型,也可以使用 writeToFile:atomically: 方法直接將對(duì)象寫(xiě)入文件中,只是 Type 為空。
?? NSUserDefaults是輕量級(jí)存儲(chǔ),一般使用它來(lái)進(jìn)行一些設(shè)置的記錄,比如用戶ID,開(kāi)關(guān)是否打開(kāi)等設(shè)置,通過(guò)鍵值對(duì)的方式記錄設(shè)置,所以這個(gè)有時(shí)候也被稱為偏好設(shè)置。
??NSUserDefaults可以存儲(chǔ)的數(shù)據(jù)類型包括: NSData 、 NSString 、 NSNumber 、 NSDate 、 NSArray 、 NSDictionary 。如果要存儲(chǔ)其他類型,則需要轉(zhuǎn)換為前面的類型,才能用NSUserDefaults存儲(chǔ)。
也可以寫(xiě)成宏定義
之前項(xiàng)目中在展示用戶數(shù)據(jù)的時(shí)候都是先直接從網(wǎng)絡(luò)獲取,然后再展示,之所以這樣做而不將用戶數(shù)據(jù)存儲(chǔ)到本地再展示的原因是當(dāng)時(shí)考慮到如果用戶在其他設(shè)備上對(duì)該用戶的數(shù)據(jù)進(jìn)行了修改那么原來(lái)設(shè)備上用戶信息的展示就會(huì)出錯(cuò),還是從網(wǎng)絡(luò)獲取的數(shù)據(jù)可靠。(存儲(chǔ)到本地同樣能正確展示用戶數(shù)據(jù),只怪自己當(dāng)初沒(méi)深入思考過(guò)這個(gè)問(wèn)題)
先從網(wǎng)絡(luò)獲取用戶數(shù)據(jù)再展示用戶數(shù)據(jù)會(huì)有一個(gè)問(wèn)題,由于網(wǎng)路請(qǐng)求數(shù)據(jù)是需要一定時(shí)間的,這樣當(dāng)我打開(kāi)一個(gè)包含用戶數(shù)據(jù)的頁(yè)面的時(shí)候會(huì)有片刻時(shí)間無(wú)法看到用戶的數(shù)據(jù),尤其在這個(gè)頁(yè)面包含用戶頭像的時(shí)候這個(gè)效果(閃屏)更加明顯,給用戶的體驗(yàn)不是很好。
我們可以在項(xiàng)目中創(chuàng)建一個(gè)存儲(chǔ)用戶信息的類,這個(gè)類可以將用戶信息存儲(chǔ)到本地,在展示用戶數(shù)據(jù)的時(shí)候 先從本地去取數(shù)據(jù) 這樣就不會(huì)有之前片刻時(shí)間看不到用戶數(shù)據(jù)的閃屏效果, 再?gòu)木W(wǎng)絡(luò)上獲取數(shù)據(jù)同時(shí)將數(shù)據(jù)存儲(chǔ)到本地,再重復(fù)從本地取的操作(這樣能保證數(shù)據(jù)是最新的,不會(huì)出錯(cuò)) 。
存儲(chǔ)用戶數(shù)據(jù)到本地有三個(gè)要點(diǎn)需要注意:
這個(gè)存儲(chǔ)用戶數(shù)據(jù)的類相當(dāng)于一個(gè)中介,在從網(wǎng)絡(luò)獲取到數(shù)據(jù)時(shí)并沒(méi)有直接去展示用戶數(shù)據(jù)而是先將數(shù)據(jù)放到了中介中,在展示用戶數(shù)據(jù)的時(shí)候再去這個(gè)存儲(chǔ)了用戶數(shù)據(jù)的中介中去取數(shù)據(jù)。
本篇文章到這里就結(jié)束了,愿大家加班不多工資多,男同胞都有女朋友,女同胞都有男朋友。????
新聞標(biāo)題:ios開(kāi)發(fā)數(shù)據(jù)存儲(chǔ),ios 存儲(chǔ)
瀏覽路徑:http://aaarwkj.com/article6/dsisgig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、建站公司、網(wǎng)站制作、網(wǎng)站收錄、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)