documents:儲存應用執行時生成的需要持久化的資料,itunes同步裝置時會備份該目錄。例如,遊戲應用可將遊戲存檔儲存在該目錄
tmp:儲存應用執行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄刪除。應用沒有執行時,系統也可能會清除該目錄下的檔案。itunes同步裝置時不會備份該目錄
library/caches:儲存應用執行時生成的需要持久化的資料,itunes同步裝置時不會備份該目錄。一般儲存體積大、不需要備份的非重要資料
library/preference:儲存應用的所有偏好設定,ios的settings(設定)應用會在該目錄中查詢應用的設定資訊。itunes同步裝置時會備份該目錄
1.plist儲存:
寫入:// 獲取應用程式沙河目錄
nsstring *home = nshomedirectory();
// 不建議寫/
// 這種方式寫的會自動增加/
// nsuserdomainmask 在使用者目錄下查詢
// yes 代表使用者目錄的~
// nsdocumentdirectory 查詢documents資料夾
// 建議使用如下方法動態獲取
nsstring *doc = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject];
// 拼接檔案路徑
;nsarray *arr = @[@"lnj", @"28"];
[arr writetofile:path atomically:yes];
讀取:nsstring *doc = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject];
;// 讀取資料
nsarray *array=[nsarray arraywithcontentsoffile:path];
特點:plist只能儲存系統自帶的一些常規的類, 也就是有writetofile方法的物件才可以使用plist儲存資料:
字串/字典/資料/nsnumber/nsdata ...
自定義的物件不能儲存到plist中
2.偏好設定儲存:
儲存:// 偏好設定是專門用來儲存應用程式的配置資訊的, 一般情況不要再偏好設定中儲存其他資料
// 如果利用系統的偏好設定來儲存資料, 預設就是儲存在preferences資料夾下面的
// 偏好設定會將所有的資料儲存到同乙個檔案中
// 獲取nsuserdefaults物件
nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults];
// 儲存資料(如果設定資料之後沒有同步, 會在將來某一時間點自動將資料儲存到preferences資料夾下面)
[defaults setobject:@"lnj" forkey:@"name"];
[defaults setobject:@"man" forkey:@"gender"];
[defaults setinteger:13 forkey:@"age"];
[defaults setdouble:10.1 forkey:@"height"];
// 讓nsuserdefaults立刻儲存資料
[defaults synchronize];
讀取:// 1.獲取nsuserdefaults
nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults];
// 2.通過nsuserdefaults獲取儲存的資料
nsstring *name = [defaults objectforkey:@"name"];
nsinteger age = [defaults integerforkey:@"age"];
特點:本質就是plist儲存.
3.歸檔:
在自定義物件中實現nscoding協議並實現以下兩個方法:
// 當將乙個自定義物件儲存到檔案的時候就會呼叫該方法
// 在該方法中說明如何儲存自定義物件的屬性
// 也就說在該方法中說清楚儲存自定義物件的哪些屬性
- (void)encodewithcoder:(nscoder *)encoder
// 當從檔案中讀取乙個物件的時候就會呼叫該方法
// 在該方法中說明如何讀取儲存在檔案中的物件
// 也就是說在該方法中說清楚怎麼讀取檔案中的物件
- (id)initwithcoder:(nscoder *)decoder
return
self;
}儲存:
njperson *p = [[njperson alloc] init];
p.name = @"lnj";
p.age = 28;
p.height = 1.76;
// 2.獲取檔案路徑
nsstring *docpath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject];
// 3.將自定義物件儲存到檔案中
[nskeyedarchiver archiverootobject:p tofile:path];
讀取: // 1.獲取檔案路徑
nsstring *docpath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject];
// 2.從檔案中讀取物件
njperson *p = [nskeyedunarchiver unarchiveobjectwithfile:path];
注意點:若是有njstudent繼承njperson,需要這樣做:
- (void)encodewithcoder:(nscoder *)acoder
- (id)initwithcoder:(nscoder *)adecoder
return
self;
}特點:實現自定義物件的歸檔
偏好設定儲存
很多ios應用都支援偏好設定,比如儲存使用者名稱 密碼 字型大小等設定,ios提供了一套標準的解決方案來為應用加入偏好設定功能。每個應用都有個nsuserdefaults例項,通過它來訪問偏好設定比如,儲存使用者名稱 字型大小 是否自動登入1 儲存設定資料 nsuserdefaults defaul...
資料儲存之偏好設定NSUserDefaults
nsuserdefaults做資料儲存也是比較常用,適合輕量級的本地資料儲存,讀取也很方便。一 支援的資料型別如下圖 nsstring nsarray nsdictionary nsdata nsinteger float double bool nsurl 二 使用demo viewcontrol...
偏好設定的儲存
1.理解 a.很多ios應用都支援偏好設定,ios提供了一套標準的解決方案來為應用加入偏好設定功能。b.每個應用都有個nsuserdefaults例項,通過它來訪問偏好設定,比如 儲存使用者名稱 字型大小 是否自動登入等。c.注意 userdefaults設定資料時,不是立即寫入,而是根據時間戳定時...