天天看點

iOS plist 詳解

plist 全名 Property List,屬性清單檔案,它是一種用來存儲串行化後的對象的檔案,屬性清單檔案的擴充名為 .plist ,是以通常被稱為 plist檔案。檔案是xml格式的。plist檔案 通常用于儲存使用者設定,也可以用于存儲捆綁的資訊

建立 plist 檔案的方式 1> 右鍵 New File

iOS plist 詳解

1> 建立出來的 plist,可以直接點選添加新列

iOS plist 詳解

2> 可直接通過檔案操作建立 plist 檔案

3> 讀取 plist 中的資訊 NSString *plistPath = [[ NSBundle mainBundle ] pathForResource : @"test" ofType : @"plist" ]; // 通過檔案名 和 擴充名擷取檔案路徑 NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];// 讀取路徑檔案中的資訊

3> 向 plist檔案中寫入資訊 NSMutableDictionary *data = [[ NSMutableDictionary alloc ] init ]; // 讀取路徑檔案中的資訊 [data setObject:@"value_a" forKey:@"key_a"]; [data setObject : @"value_b" forKey : @"key_b" ]; [data setObject : @"value_c" forKey : @"key_c" ]; // 擷取應用程式沙盒的 Documents 目錄 NSArray *paths = NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory , NSUserDomainMask , YES ); NSString *plistPath1 = [paths objectAtIndex : 0 ]; // 得到完整的檔案名 NSString *filename = [plistPath1 stringByAppendingPathComponent : @"test123456.plist" ]; [data writeToFile :filename atomically : YES ]; // 讀取檔案中的資訊就可以判斷是否檔案操作成功 NSMutableDictionary *data1 = [[ NSMutableDictionary alloc ] initWithContentsOfFile :filename]; NSLog(@"%@", data1);

4> 修改 plist檔案中的資訊 // 擷取應用程式沙盒的 Documents 目錄 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *plistPath1 = [paths objectAtIndex : 0 ]; // 得到完整的檔案名 NSString *filename = [plistPath1 stringByAppendingPathComponent : @"test123456.plist" ]; NSMutableDictionary *data = [[ NSMutableDictionary alloc ] initWithContentsOfFile :filename]; // 讀取路徑檔案中的資訊 // 設定屬性值 , 沒有的資料就建立,已有的資料就修改 [[data objectForKey : @"users" ] setObject : @" 逗比 " forKey : @"name" ]; [data removeObjectForKey : @"key_c" ]; // 删除資料 [data setObject : @"cccccccccccc" forKey : @"key_c" ]; // 測試時無法直接修改已存在 key 的值,可以先删除再添加方式來修改 [data writeToFile :filename atomically : YES ]; // 讀取檔案中的資訊就可以判斷是否檔案操作成功 NSMutableDictionary *data1 = [[ NSMutableDictionary alloc ] initWithContentsOfFile :filename]; NSLog(@"%@", data1);