iOS開發之數據存儲之XML屬性列表(plist)歸檔

1、概述xcode

「歸檔」意思是持久化存儲數據。plist文件是一種XML格式的文件,拓展名爲plist。若是對象是NSString、NSDictionary、NSArray、NSData、NSNumber等類型,就能夠使用writeToFile:atomically:方法直接將對象寫到屬性列表文件(plist文件)中。特別注意的是plist文件不能存儲對象。安全

IOS經常使用文件存儲方式有:編輯器

XML屬性列表(plist)歸檔atom

Preference(偏好設置)code

NSKeyedArchiver歸檔(NSCoding)對象

SQLite3string

Core Datait

2、歸檔NSDictionaryio

將一個NSDictionary對象歸檔到一個plist屬性列表中:table

首先,將數據封裝成字典:

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

[dict setObject:@"母雞" forKey:@"name"];

[dict setObject:@"15013141314" forKey:@"phone"];

[dict setObject:@"27" forKey:@"age"];

其次,獲取沙盒中Documents/stu.plist完整路徑,根據路徑將字典持久化到Documents/stu.plist文件中:

[dict writeToFile:path atomically:YES];//YES表明安全存儲

成功寫入到Documents目錄下後以下圖:

用文本編輯器打開,文件內容以下圖:

用xcode打開屬性文件以下圖:

上面是從NSDictionary寫入到plist文件,也能夠從NSArray寫入到plist文件,例如:

// 1.得到沙盒根路徑

NSString *home = NSHomeDirectory();

// 2.拼接成document路徑

NSString *docPath =

[home stringByAppendingPathComponent:@"Documents"];

   

// 3.新建數據

NSArray *data = @[@"jack", @10, @"ffdsf"];

//4.拼接成具體文件的路徑

NSString *filepath =

[docPath stringByAppendingPathComponent:@"data.plist"];

// 5.寫入數據

[data writeToFile:filepath atomically:YES];

3、恢復NSDictionary

讀取Documents/stu.plist的內容,實例化NSDictionary

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];

NSLog(@"name:%@", [dict objectForKey:@"name"]);

NSLog(@"phone:%@", [dict objectForKey:@"phone"]);

NSLog(@"age:%@", [dict objectForKey:@"age"]);

打印信息以下:

上面是讀取到NSDictionary,對應地,咱們也能夠讀取到NSArray,例如:

// 1.得到沙盒根路徑

NSString *home = NSHomeDirectory();

// 2.document路徑

NSString *docPath =

[home stringByAppendingPathComponent:@"Documents"];

// 3.文件路徑

NSString *filepath =

[docPath stringByAppendingPathComponent:@"data.plist"];

// 4.讀取數據

NSArray *data = [NSArray arrayWithContentsOfFile:filepath];

4NSDictionary的存儲和讀取過程

相關文章
相關標籤/搜索