iOS中plist檔案操作
1、先建立一個plist檔案在專案中:
new file - Resource - Property plist - Next(下一步) - 更改名稱(chatUserName)- 確認
這樣就建立好了一個plist檔案
2、獲取plist檔案路徑:
NSString *plistPath = [[NSBundlemainBundle] pathForResource:@"chatNiceName"ofType:@"plist"];
3、往plist檔案中存入資料:(我這裡用的是字典形式,你可以根據需要選擇是字典還是陣列)
/**
* 往plist檔案中寫入資訊,text作為字典的key 與 value
*/
-(void)writeMsgToPlistFile:(NSString *)text
{
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"chatNiceName.plist"];
NSMutableDictionary *dataList = [[[NSMutableDictionaryalloc] initWithContentsOfFile
NSMutableDictionary *dict1 = [NSMutableDictionarydictionary];
[dict1 setObject:text forKey:text];
[dataList setObject:dict1 forKey:text];
[dataList writeToFile:path atomically:YES];
}
plist存入的資訊圖片展示:4、讀取剛才存在字典裡面的資訊
/**
* 讀取plist檔案中寫入資訊,text作為字典的key 與 value
*/
-(void)getPlistFileAllMsg:(NSString*)text
{
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"chatNiceName.plist"];
NSMutableDictionary *dataList = [[[NSMutableDictionaryalloc] initWithContentsOfFile:path] mutableCopy];
NSMutableDictionary *dict = [dataList objectForKey:text];
NSLog(@"%@", dict);
}
打印出來的報文資訊
問題:
在論壇上看到有人說往plist檔案存入字典資訊,會把之前的dict給覆蓋掉。這裡復原下這種情況程式碼
如果你取出plist的程式碼是這樣的,那麼將會出現覆蓋的情況
NSString *plistPath = [[NSBundlemainBundle] pathForResource:@"chatNiceName"ofType:@"plist"];
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];