天天看點

iOS plist檔案的增删查改 原文:http://www.cnblogs.com/xiaofeixiang/p/4263498.html?utm_source=tuicool&utm_medium=referral

原文:http://www.cnblogs.com/xiaofeixiang/p/4263498.html?utm_source=tuicool&utm_medium=referral

plist第一次看到這個字尾名檔案的時候感覺怪怪的,不過接觸久了也就習以為常了,plist是Property List的簡稱可以了解成屬性清單檔案,主要用來存儲串行化後的對象的檔案。擴充名為.plist,是以被稱為 plist檔案,xCode中預設的是一種樹狀的結構展現出來資料,可視化的動态增删改查,非常人性化,不過最終的結果是以XML形式存儲的,Plist檔案可以用于存儲使用者的一些設定資訊,具體根據需求而定。

簡單建立檔案

簡單建立檔案就是說可以直接從xCode建立,右擊項目new File,可以添加一個plist檔案:

iOS plist檔案的增删查改 原文:http://www.cnblogs.com/xiaofeixiang/p/4263498.html?utm_source=tuicool&utm_medium=referral

建立一個UserData.plist檔案,之後的内容如下:

iOS plist檔案的增删查改 原文:http://www.cnblogs.com/xiaofeixiang/p/4263498.html?utm_source=tuicool&utm_medium=referral

右擊open as->source code,代碼如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

<?xml version=

"1.0"

encoding=

"UTF-8"

?>

<!DOCTYPE plist PUBLIC 

"-//Apple//DTD PLIST 1.0//EN"

"http://www.apple.com/DTDs/PropertyList-1.0.dtd"

>

<plist version=

"1.0"

>

<dict>

<key>Login</key>

<dict>

<key>UserName</key>

<string>FlyElephant</string>

<key>UserPassWord</key>

<string>123456</string>

</dict>

</dict>

</plist>

 讀取設定的資訊:

1 2 3 4 5 6

//讀取Property List檔案

NSString

*userDataPath = [[

NSBundle

mainBundle] pathForResource:@

"UserData"

ofType:@

"plist"

];

NSMutableDictionary

*data = [[

NSMutableDictionary

alloc] initWithContentsOfFile:userDataPath];

NSLog

(@

"%@"

,data);

NSLog

(@

"使用者名:%@ 密碼:%@"

, data[@

"Login"

][@

"UserName"

],data[@

"Login"

][@

"UserPassWord"

]);

[data setObject:@

"登入資訊"

forKey:@

"Login"

];

增删改查

檔案添加,上面是應用程式中添加檔案,這個時候可以選擇代碼在沙盒中添加,代碼如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

NSArray

*sandboxpath= 

NSSearchPathForDirectoriesInDomains

(

NSDocumentDirectory

NSUserDomainMask

YES

);

//擷取完整路徑

NSString

*documentsDirectory = [sandboxpath objectAtIndex:0];

NSString

*plistPath = [documentsDirectory stringByAppendingPathComponent:@

"sandbox.plist"

];

//存儲根資料

NSMutableDictionary

*rootDic = [[

NSMutableDictionary

alloc ] init];

//字典中的詳細資料

NSMutableDictionary

*userDataDic = [[

NSMutableDictionary

alloc]init];

[userDataDic setObject:@

"Flephant"

forKey:@

"UserName"

];

[userDataDic setObject:@

"http://www.cnblogs.com/xiaofeixiang/"

forKey:@

"UserPassWord"

];

[rootDic setObject:userDataDic forKey:@

"Login"

];

//寫入檔案

[rootDic writeToFile:plistPath atomically:

YES

];

NSLog

(@

"%@"

,

NSHomeDirectory

());

NSLog

(@

"寫入成功"

);

 路徑如下,具體路徑擷取上一篇文章已經可以看到:

iOS plist檔案的增删查改 原文:http://www.cnblogs.com/xiaofeixiang/p/4263498.html?utm_source=tuicool&amp;utm_medium=referral

讀取資料:

1 2 3 4 5 6 7

//擷取路徑

NSArray

*sandboxpath= 

NSSearchPathForDirectoriesInDomains

(

NSDocumentDirectory

NSUserDomainMask

YES

);

NSString

*filePath = [[sandboxpath objectAtIndex:0] stringByAppendingPathComponent:@

"sandbox.plist"

];

NSLog

(@

"%@"

,

NSHomeDirectory

());

//擷取資料

NSMutableDictionary

*searchdata = [[

NSMutableDictionary

alloc] initWithContentsOfFile:filePath];

NSLog

(@

"%@"

,searchdata);

修改檔案:

1 2 3 4 5 6 7 8 9 10 11 12 13

//擷取路徑

NSString

*filepath = [[

NSSearchPathForDirectoriesInDomains

(

NSDocumentDirectory

NSUserDomainMask

YES

)objectAtIndex:0]stringByAppendingPathComponent:@

"sandbox.plist"

];

//所有的資料清單

NSMutableDictionary

*datalist= [[[

NSMutableDictionary

alloc]initWithContentsOfFile:filepath]mutableCopy];

//擷取Login節點

NSMutableDictionary

*loginData = [datalist objectForKey:@

"Login"

];

[loginData setValue: @

"FlyElephant"

forKey:@

"UserName"

];

[loginData setValue: @

"123456"

forKey:@

"UserPassWord"

];

[datalist setValue:loginData forKey:@

"Login"

];

[datalist writeToFile:filepath atomically:

YES

];

NSLog

(@

"修改成功"

);

 删除檔案:

1 2 3 4 5 6

NSFileManager

*manager=[

NSFileManager

defaultManager];

//檔案路徑

NSString

*filepath = [[

NSSearchPathForDirectoriesInDomains

(

NSDocumentDirectory

NSUserDomainMask

YES

)objectAtIndex:0]stringByAppendingPathComponent:@

"sandbox.plist"

];

if

([manager removeItemAtPath:filepath error:

nil

]) {

NSLog

(@

"檔案删除成功"

);

}

繼續閱讀