日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iOS应用数据持久化(一)

發(fā)布時(shí)間:2025/5/22 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS应用数据持久化(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、iOS應(yīng)用常用的數(shù)據(jù)持久化方式:

1.XML屬性列表(plist)

2.preference(偏好設(shè)置)

3.NSKeyedArchiver(歸檔與反歸檔)

4.SQLite3(數(shù)據(jù)庫(kù))

5.CoreData

二、應(yīng)用沙盒

每個(gè)iOS應(yīng)用都有自己的應(yīng)用沙盒(應(yīng)用沙盒就是文件系統(tǒng)目錄,與其他文件系統(tǒng)隔離。如下圖:


分析:

1.Documents:保存應(yīng)用運(yùn)行時(shí)生成的需要持久化的數(shù)據(jù),這個(gè)目錄存放用戶數(shù)據(jù)。存放用戶可以管理的文件。iTunes同步設(shè)備時(shí)會(huì)備份該目錄。例如,游戲應(yīng)用可將游戲存檔保存在該目錄。

2.Library:是一個(gè)資源庫(kù),存儲(chǔ)一些不太重要的數(shù)據(jù),相對(duì)較大一些。

2.1 Library/Caches:緩存文件,緩存圖片,音頻,視頻,網(wǎng)頁(yè)等資源,應(yīng)用程序所執(zhí)行的清除緩存,就是清楚該文件夾。

2.2 Library/Preferences:系統(tǒng)偏好設(shè)置,用戶對(duì)應(yīng)程序的設(shè)置,如用戶名盒用戶密碼,通過NSUserDefaults存入

3. tmp:存放臨時(shí)文件

獲取App沙盒根路徑:


App沙盒根路徑

獲取Documents目錄路徑:


Documents目錄路徑

獲取Library目錄路徑:


Library目錄路徑

獲取Library/Caches目錄路徑:


Library/Caches目錄路徑

獲取Tmp目錄路徑:


Tmp目錄路徑

三、正文:(本文只講述iOS應(yīng)用常用的數(shù)據(jù)持久化方式的前面三種)

1.XML屬性列表(plist):


代碼
路徑

2.preference(偏好設(shè)置):



代碼
路徑

3.NSKeyedArchiver(歸檔與反歸檔)

3.1 創(chuàng)建一個(gè)Person類


Person.h
Person.m

3.2 在主頁(yè)面執(zhí)行歸檔和反歸檔操作


ViewController.m
ViewController.m
打印

3.3 增刪查改操作


添加兩個(gè)按鈕執(zhí)行的操作

總結(jié):

1.XML屬性列表:

● 屬性列表是一種XML格式的文件,拓展名為plist

● 如果對(duì)象是NSString、NSDictionary、NSArray、NSData、 NSNumber等類型,就可以使用writeToFile:atomically:?法 直接將對(duì)象寫到屬性列表文件中


區(qū)別介紹
獲取文件目錄的介紹

2.preference(偏好設(shè)置):

●偏好設(shè)置是專門用來保存應(yīng)用程序的配置信息的, 一般情況不要在偏好設(shè)置中保存其他數(shù)據(jù)。如果利用系統(tǒng)的偏好設(shè)置來存儲(chǔ)數(shù)據(jù), 默認(rèn)就是存儲(chǔ)在Preferences文件夾下面的,偏好設(shè)置會(huì)將所有的數(shù)據(jù)都保存到同一個(gè)文件中。

●使用偏好設(shè)置對(duì)數(shù)據(jù)進(jìn)行保存之后, 它保存到系統(tǒng)的時(shí)間是不確定的,會(huì)在將來某一時(shí)間點(diǎn)自動(dòng)將數(shù)據(jù)保存到Preferences文件夾下面,如果需要即刻將數(shù)據(jù)存儲(chǔ),可以使用[defaults synchronize];

●注意點(diǎn):所有的信息都寫在一個(gè)文件中,對(duì)比簡(jiǎn)單的plist可以保存和讀取基本的數(shù)據(jù)類型。

●步驟:獲取NSuserDefaults,保存(讀取)數(shù)據(jù)

3.NSKeyedArchiver歸檔:

0.遵守NSCoding協(xié)議,并實(shí)現(xiàn)該協(xié)議中的兩個(gè)方法。

1.如果是繼承,則子類一定要重寫那兩個(gè)方法。因?yàn)閜erson的子類在存取的時(shí)候,會(huì)去子類中去找調(diào)用的方法,沒找到那么它就去父類中找,所以最后保存和讀取的時(shí)候新增加的屬性會(huì)被忽略。需要先調(diào)用父類的方法,先初始化父類的,再初始化子類的。

- 即在encodeWithCoder:方法中加上一句 ?[super encodeWithCode:encode]; ? ? ? ? ? ? ? ? ? ?- 即在initWithCoder:方法中加上一句 ?self = [super initWithCoder:decoder]; ? ? ? ? ? ? ? ? ? ? ? ? ? 確保繼承的實(shí)例變量也能被編碼和解碼

2.保存數(shù)據(jù)的文件的后綴名可以隨意命名。

3.通過plist保存的數(shù)據(jù)是直接顯示的,不安全。通過歸檔方法保存的數(shù)據(jù)在文件中打開是亂碼的,更安全。

轉(zhuǎn)載于:https://juejin.im/post/5b0e6a03f265da090640ddba

總結(jié)

以上是生活随笔為你收集整理的iOS应用数据持久化(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。