IOS中的儲存 Plist

2021-06-08 03:50:21 字數 1762 閱讀 9207

在mac os x的cocoa,nextstep和gnustep程式設計框架中,屬性列表(property list)檔案是一種用來儲存序列化後的物件的檔案。屬性列表檔案的擴充套件名為.plist,因此通常被稱為plist檔案。

plist檔案通常用於儲存使用者設定,也可以用於儲存**的資訊,該功能在舊式的mac os中是由資源分支提供的。

使用mac os 和core foundation中的property list介面我們可以在層式的物件和xml檔案之間進行轉換。我們可以把xml檔案儲存起來以後再把它以物件的形式讀取出來。這裡我們來具體討論下property list和他們的表現形式,以及如何在程式設計過程中使用他們。

這裡我想提到一下nsuserdefault,它其實也是以property list 的形式來儲存的,但是它有限制,比如說nscolor和nsfont等型別式不能夠直接儲存的,我們必須要轉換他們,要把他們轉換成nsdata型別來儲存,我想在另一篇文章在詳細說說這個問題。

廢話不多說,我們開始吧。

在程式設計的過程中,我們可以在專案中建立plist來儲存一些變數,具體的操作步驟file-new-mac os x-resource-property list。我們在專案中可以以xml形式或者source code形式來編寫。比如我們的plist原**的形式象下面的xml一樣。

<?xml version="1.0" encoding="utf-8"?>

name

john doe

phones

408-974-0000

503-333-5555

接下來我們從plist中讀取資訊,這是在iphone開發中的應用:

//get the plist file from bundle

nsstring *plistpath = [[nsbundle mainbundle] pathforresource:@"data" oftype:@"plist"];

// build the array from the plist

nsmutablearray *anarray = [[nsmutablearray alloc]initwithcontentoffile:plistpath];

下面是寫操作:

nsstring *error;

nsstring *rootpath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory,

nsuserdomainmask, yes) objectatindex:0];

nsdictionary *plistdict = [nsdictionary dictionarywithobjects:

[nsarray arraywithobjects: personname, phonenumbers, nil]

forkeys:[nsarray arraywithobjects: @"name", @"phones", nil]];

nsdata *plistdata = [nspropertylistserialization datafrompropertylist:plistdict

format:nspropertylistxmlformat_v1_0

errordescription:&error];

if(plistdata)

else

iOS 資料儲存 plist檔案

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

在ios下儲存資料到plist

今晚想把之前新手教程裡的todolist拿出來,新增退出儲存資料的功能,本來以為只需要簡單地呼叫乙個寫資料函式就可以搞定,沒想到竟然也折騰了好久。用 nsdictionary的writetofile方法一直儲存不成功。非常簡單,就只有幾行 nsdictionary filedata if filed...

iOS 使用plist和歸檔儲存資料

1使用plist檔案儲存資料 首先要知道的是,使用plist儲存資料,只能儲存oc自帶的資料字典和陣列,無法儲存自定義的資料model,例子看info.plist的樣式就知道了 將資料儲存到plist檔案中 獲取本地沙盒路徑 nsarray path nssearchpathfordirectori...