![【移動應(yīng)用開發(fā)技術(shù)】IOS 數(shù)據(jù)存儲詳解及實(shí)例代碼_第1頁](http://file4.renrendoc.com/view/b96747ba6d6879483e2310080ed68bd0/b96747ba6d6879483e2310080ed68bd01.gif)
![【移動應(yīng)用開發(fā)技術(shù)】IOS 數(shù)據(jù)存儲詳解及實(shí)例代碼_第2頁](http://file4.renrendoc.com/view/b96747ba6d6879483e2310080ed68bd0/b96747ba6d6879483e2310080ed68bd02.gif)
![【移動應(yīng)用開發(fā)技術(shù)】IOS 數(shù)據(jù)存儲詳解及實(shí)例代碼_第3頁](http://file4.renrendoc.com/view/b96747ba6d6879483e2310080ed68bd0/b96747ba6d6879483e2310080ed68bd03.gif)
![【移動應(yīng)用開發(fā)技術(shù)】IOS 數(shù)據(jù)存儲詳解及實(shí)例代碼_第4頁](http://file4.renrendoc.com/view/b96747ba6d6879483e2310080ed68bd0/b96747ba6d6879483e2310080ed68bd04.gif)
![【移動應(yīng)用開發(fā)技術(shù)】IOS 數(shù)據(jù)存儲詳解及實(shí)例代碼_第5頁](http://file4.renrendoc.com/view/b96747ba6d6879483e2310080ed68bd0/b96747ba6d6879483e2310080ed68bd05.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】IOS數(shù)據(jù)存儲詳解及實(shí)例代碼
iOS應(yīng)用數(shù)據(jù)存儲的常用方式1.XML屬性列表(plist)歸檔每個iOS應(yīng)用都有自己的應(yīng)用沙盒(應(yīng)用沙盒就是文件系統(tǒng)目錄),與其他文件系統(tǒng)隔離。應(yīng)用必須待在自己的沙盒里,其他應(yīng)用不能訪問該沙盒。應(yīng)用沙盒結(jié)構(gòu)分析:應(yīng)用程序包:包含了所有的資源文件和可執(zhí)行文件
Documents:保存應(yīng)用運(yùn)行時生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時會備份該目錄。例如,游戲應(yīng)用可將游戲存檔保存在該目錄tmp:保存應(yīng)用運(yùn)行時所需的臨時數(shù)據(jù),使用完畢后再將相應(yīng)的文件從該目錄刪除。應(yīng)用沒有運(yùn)行時,系統(tǒng)也可能會清除該目錄下的文件。iTunes同步設(shè)備時不會備份該目錄Library/Caches:保存應(yīng)用運(yùn)行時生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時不會備份該目錄。一般存儲體積大、不需要備份的非重要數(shù)據(jù)Library/Preference:保存應(yīng)用的所有偏好設(shè)置,iOS的Settings(設(shè)置)應(yīng)用會在該目錄中查找應(yīng)用的設(shè)置信息。iTunes同步設(shè)備時會備份該目錄應(yīng)用沙盒目錄的常見獲取方式屬性列表
屬性列表是一種XML格式的文件,拓展名為plist
如果對象是NSString、NSDictionary、NSArray、NSData、NSNumber等類型,就可以使用writeToFile:atomically:方法直接將對象寫到屬性列表文件中
屬性列表是一種XML格式的文件,拓展名為plist如果對象是NSString、NSDictionary、NSArray、NSData、NSNumber等類型,就可以使用writeToFile:atomically:方法直接將對象寫到屬性列表文件中如:將一個NSDictionary對象歸檔到一個plist屬性列表中恢復(fù)NSDictionary
**NSDictionary—(writeToFile:atomically:)—->save.plist
(屬性列表文件)**
save.plist(屬性列表文件)—(dictionaryWithContentsOfFile:)—>NSDictionary
**NSDictionary—(writeToFile:atomically:)—->save.plist
(屬性列表文件)**save.plist(屬性列表文件)—(dictionaryWithContentsOfFile:)—>NSDictionary2.Preference(偏好設(shè)置)
很多iOS應(yīng)用都支持偏好設(shè)置,比如保存用戶名、密碼、字體大小等設(shè)置,iOS提供了一套標(biāo)準(zhǔn)的解決方案來為應(yīng)用加入偏好設(shè)置功能
每個應(yīng)用都有個NSUserDefaults實(shí)例,通過它來存取偏好設(shè)置
很多iOS應(yīng)用都支持偏好設(shè)置,比如保存用戶名、密碼、字體大小等設(shè)置,iOS提供了一套標(biāo)準(zhǔn)的解決方案來為應(yīng)用加入偏好設(shè)置功能
每個應(yīng)用都有個NSUserDefaults實(shí)例,通過它來存取偏好設(shè)置
注意:UserDefaults設(shè)置數(shù)據(jù)時,不是立即寫入,而是根據(jù)時間戳定時地把緩存中的數(shù)據(jù)寫入本地磁盤。所以調(diào)用了set方法之后數(shù)據(jù)有可能還沒有寫入磁盤應(yīng)用程序就終止了。出現(xiàn)以上問題,可以通過調(diào)用synchornize方法強(qiáng)制寫入
[defaultssynchornize];
注意:UserDefaults設(shè)置數(shù)據(jù)時,不是立即寫入,而是根據(jù)時間戳定時地把緩存中的數(shù)據(jù)寫入本地磁盤。所以調(diào)用了set方法之后數(shù)據(jù)有可能還沒有寫入磁盤應(yīng)用程序就終止了。出現(xiàn)以上問題,可以通過調(diào)用synchornize方法強(qiáng)制寫入
[defaultssynchornize];3.NSKeyedArchiver歸檔(NSCoding)NSKeyedArchiver
如果對象是NSString、NSDictionary、NSArray、NSData、NSNumber等類型,可以直接用NSKeyedArchiver進(jìn)行歸檔和恢復(fù)
不是所有的對象都可以直接用這種方法進(jìn)行歸檔,只有遵守了NSCoding協(xié)議的對象才可以
如果對象是NSString、NSDictionary、NSArray、NSData、NSNumber等類型,可以直接用NSKeyedArchiver進(jìn)行歸檔和恢復(fù)
不是所有的對象都可以直接用這種方法進(jìn)行歸檔,只有遵守了NSCoding協(xié)議的對象才可以*NSCoding協(xié)議有2個方法:*encodeWithCoder:
每次歸檔對象時,都會調(diào)用這個方法。一般在這個方法里面指定如何歸檔對象中的每個實(shí)例變量,可以使用encodeObject:forKey:方法歸檔實(shí)例變量initWithCoder:
每次從文件中恢復(fù)(解碼)對象時,都會調(diào)用這個方法。一般在這個方法里面指定如何解碼文件中的數(shù)據(jù)為對象的實(shí)例變量,可以使用decodeObject:forKey方法解碼實(shí)例變量歸檔一個NSArray對象到Documents/array.data恢復(fù)(解碼)NSArray對象
NSArray—(archiveRootObject:toFile:)—->array.data
array.data—(unarchiveObjectWithFile:)—>NSArray
NSArray—(archiveRootObject:toFile:)—->array.dataarray.data—(unarchiveObjectWithFile:)—>NSArray
如果父類也遵守了NSCoding協(xié)議,請注意:
應(yīng)該在encodeWithCoder:方法中加上
[superencodeWithCode:encode];
確保繼承的實(shí)例變量也能被編碼,
即也能被歸檔應(yīng)該在initWithCoder:方法中加上
self=[superinitWithCoder:decoder];
確保繼承的實(shí)例變量也能被解碼,即也能被恢復(fù)
如果父類也遵守了NSCoding協(xié)議,請注意:
應(yīng)該在encodeWithCoder:方法中加上
[superencodeWithCode:encode];
確保繼承的實(shí)例變量也能被編碼,
即也能被歸檔應(yīng)該在initWithCoder:方法中加上
self=[superinitWithCoder:decoder];
確保繼承的實(shí)例變量也能被解碼,即也能被恢復(fù)NSData
使用archiveRootObject:toFile:方法可以將一個對象直接寫入到一個文件中,但有時候可能想將多個對象寫入到同一個文件中,那么就要使用NSData來進(jìn)行歸檔對象
NSData可以為一些數(shù)據(jù)提供臨時存儲空間,以便隨后寫入文件,或者存放從磁盤讀取的文件內(nèi)容??梢允褂肹NSMutableDatadata]創(chuàng)建可變數(shù)據(jù)空間
使用archiveRootObject:toFile:方法可以將一個對象直接寫入到一個文件中,但有時候可能想將多個對象寫入到同一個文件中,那么就要使用NSData來進(jìn)行歸檔對象NSData可以為一些數(shù)據(jù)提供臨時存儲空間,以便隨后寫入文件,或者存放從磁盤讀取的文件內(nèi)容??梢允褂肹NSMutableDatadata]創(chuàng)建可變數(shù)據(jù)空間利用歸檔實(shí)現(xiàn)深復(fù)制
person1—(archivedDataWithRootObject:)—>NSData—(unarchiveObje
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度市政道路照明工程施工合同(夜景照明版)
- 2025年度化妝品居間費(fèi)合同范本:化妝品銷售中介服務(wù)合作協(xié)議
- 2025年二手房購買合同包括家具家電移除及安裝服務(wù)協(xié)議
- 2025年度大型建筑設(shè)備租賃與維護(hù)一體化合同
- 2025年度能源項(xiàng)目投資合作購銷合同模板
- 2025年度建筑節(jié)能換熱器采購合同范本
- 2025年度股東借款合同范本:數(shù)字經(jīng)濟(jì)領(lǐng)域投資合作書
- 2025年度智能家居系統(tǒng)設(shè)計安裝合同增補(bǔ)協(xié)議
- 2025年度國際貿(mào)易倉儲:履行進(jìn)口合同倉儲管理與成本控制協(xié)議
- 2025年會議展覽行業(yè)智能化升級改造服務(wù)合同
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 上海鐵路局招聘筆試沖刺題2025
- 國旗班指揮刀訓(xùn)練動作要領(lǐng)
- 春季安全開學(xué)第一課
- 植物芳香油的提取 植物有效成分的提取教學(xué)課件
- 肖像繪畫市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測報告
- 2021-2022學(xué)年遼寧省重點(diǎn)高中協(xié)作校高一上學(xué)期期末語文試題
- 同等學(xué)力英語申碩考試詞匯(第六版大綱)電子版
- 墓地個人協(xié)議合同模板
- 2024年部編版初中語文各年級教師用書七年級(上冊)
- 中日合同范本
評論
0/150
提交評論