iOS 使用plist和歸檔儲存資料

2021-08-09 20:19:40 字數 2676 閱讀 4124

1使用plist檔案儲存資料

首先要知道的是,使用plist儲存資料,只能儲存oc自帶的資料字典和陣列,無法儲存自定義的資料model,例子看info.plist的樣式就知道了

將資料儲存到plist檔案中

//獲取本地沙盒路徑

nsarray *path = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);

//獲取完整路徑

nsstring *docpath = [path objectatindex:0];

// 3.新建資料

nsmutablearray *data = [[nsmutablearray alloc] initwithobjects:@"232",@"jee", nil];

nsstring *str = @"21323";

[data insertobject:str atindex:0];

[data writetofile:filepath atomically:yes];

讀取並修改plist檔案

//獲取本地沙盒路徑

nsarray *path = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);

//獲取完整路徑

nsstring *docpath = [path objectatindex:0];

// 3.檔案路徑

// 4.讀取資料

nsmutablearray *data = [nsmutablearray arraywithcontentsoffile:filepath];

// 5.修改資料

nsstring *str = @"wwwww";

[data insertobject:str atindex:0];

[data writetofile:filepath atomically:yes];

nslog(@"%@", data);

2.使用歸檔儲存資料

使用歸檔儲存就可以儲存自定義的model資料了

首先將讓model遵循nscoding協議

#import @inte***ce subdata : nsobject@property (copy, nonatomic) nsstring * name;

@property (copy, nonatomic) nsstring * code;

@property (copy, nonatomic) nsstring * imgurl;

@property (copy, nonatomic) nsstring * sub;

@property (copy, nonatomic) nsstring * url;

@end

然後在m檔案中

// 當將乙個自定義物件儲存到檔案的時候就會呼叫該方法

// 在該方法中說明如何儲存自定義物件的屬性

// 也就說在該方法中說清楚儲存自定義物件的哪些屬性

- (void)encodewithcoder:(nscoder *)acoder

// 當從檔案中讀取乙個物件的時候就會呼叫該方法

// 在該方法中說明如何讀取儲存在檔案中的物件

// 也就是說在該方法中說清楚怎麼讀取檔案中的物件

- (id)initwithcoder:(nscoder *)adecoder

return self;

}

這樣在model中的設定就完成了,接下來是使用時的**

將資料儲存到檔案中

//獲取檔案路徑

nsstring *docpath=[nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes)lastobject];

nsmutablearray *subdataarray = [[nsmutablearray alloc] init];

[subdataarray insertobject:model atindex:0];

//將自定義的物件儲存到檔案中,呼叫nskeyedarchiver的工廠方法 archiverootobject: tofile: 方法

[nskeyedarchiver archiverootobject:subdataarray tofile:path];

解檔

//1.獲取檔案路徑

nsstring *docpath=[nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes)lastobject];

//2.從檔案中讀取物件,解檔物件就呼叫nskeyedunarchiver的乙個工廠方法 unarchiveobjectwithfile: 即可。

if([gygeneraltools isfileexist:@"recentlyused.archiver"])

28 資料儲存 plist 偏好設定 歸檔

documents 儲存應用執行時生成的需要持久化的資料,itunes同步裝置時會備份該目錄。例如,遊戲應用可將遊戲存檔儲存在該目錄 tmp 儲存應用執行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄刪除。應用沒有執行時,系統也可能會清除該目錄下的檔案。itunes同步裝置時不會備份該目錄 li...

IOS中的儲存 Plist

在mac os x的cocoa,nextstep和gnustep程式設計框架中,屬性列表 property list 檔案是一種用來儲存序列化後的物件的檔案。屬性列表檔案的擴充套件名為.plist,因此通常被稱為plist檔案。plist檔案通常用於儲存使用者設定,也可以用於儲存 的資訊,該功能在舊...

iOS 資料儲存 plist檔案

屬性列表是一種明文的輕量級儲存方式,其儲存格式有多種,最常規格式為xml格式。在我們建立乙個新的專案的時候,xcode會自動生成乙個info.plist檔案用來儲存專案的部分系統設定。plist只能用陣列 nsarray 或者字典 nsdictionary 進行讀取,由於屬性列表本身不加密,所以安全...