1. 程式人生 > >iOS中plist檔案操作

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

:path] mutableCopy];

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];