在學(xué)習(xí)本地數(shù)據(jù)存取的時候我們首先介紹一下iOS中的一個存儲介質(zhì)應(yīng)用沙盒。每個iOS的應(yīng)用都有自己的應(yīng)用沙盒(應(yīng)用沙盒就是文件系統(tǒng)目錄),與其他文件系統(tǒng)隔離。應(yīng)用必須待在自己的沙盒里,其他應(yīng)用不能訪問該沙盒。應(yīng)用沙盒結(jié)構(gòu)分析:
1、應(yīng)用程序包:包含所有的資源文件和可執(zhí)行文件
2、Documents:保存應(yīng)用運行時生成需要持久化的數(shù)據(jù),iTunes同步設(shè)備時會備份該目錄。例如:游戲應(yīng)用可將游戲存檔保存在該目錄。
3、tmp:保存應(yīng)用運行時所需的臨時數(shù)據(jù),使用完畢后,再講相應(yīng)的文件從該目錄刪除。應(yīng)用沒有運行時,系統(tǒng)可能會消除該目錄下的文件,iTunes同步設(shè)備是不會備份該目錄。
4、Library/Caches:保存應(yīng)用運行時生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時不會備份該目錄。一般存儲體積大、不需要備份的非重要的數(shù)據(jù)
5、Library/Preference:保存應(yīng)用的偏好設(shè)置,iOS的Setting應(yīng)用會在該目錄中查找應(yīng)用的設(shè)置信息。iTunes同步設(shè)備時備份該目錄。
?應(yīng)用的沙盒目錄的常見的獲取方式
?獲取沙盒路徑:NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
iOS應(yīng)用數(shù)據(jù)存儲的常用方式
1、XML屬性列表(plist)歸檔
2、偏好設(shè)置(Preference)
3、NSCoding
4、SQLite3
5、Core Date
XML屬性列表(plist)歸檔
?屬性列表是一種XML格式,拓展名為plist
?如果對象是一些OC對象,就可以使用wirteToFile:atomically:方法直接將對象寫到屬性列表文件中,使用這個方法可以用來獲取文件的沙盒

下面使用歸檔將數(shù)據(jù)寫成plist文件如圖所示:

偏好設(shè)置(Preference)
?很多iOS應(yīng)用都支持偏好設(shè)置,比如登錄保存用戶名、密碼,iOS提供了一套標(biāo)準(zhǔn)的解決方案來用用加入偏好設(shè)置功能不能
?每個應(yīng)用都有NSUserverDefaults實例,通過它來存取偏好設(shè)置
NSCoding(歸檔)
?對象如果是OC隊形可以直接使用NSKeyedArchiver進(jìn)行歸檔和恢復(fù)(不是所有的OC對象都能使用NSKeyedArchiver)
這種方式來進(jìn)行歸檔和接檔操作的只有遵守NSCoding協(xié)議的對象才可以使用NSKeyedArchiver來進(jìn)行解檔和歸檔