###一、屬性列表(plist) iOS提供了一種plist格式的文件(屬性列表)用於存儲輕量級的數據,而且只能保存NSDictionary、NSArray、NSString、NSNumber、Boolean、NSData、NSDate 類型的數據。將這些類型的數據保存爲plist格式文件,該格式保存的數據能夠直接使用NSDictionary和NSArray讀取。數組
####1.1 手動添加plist文件atom
#####建立文件: 新建文件-->Resource-->Property List code
#####添加數據: plist文件的根類型只能是NSArray或NSDictionary
對象
#####讀取數據: 將plist文件中的數據讀入對應的根類型圖片
// 一、獲取文件所在的路徑,Resource:文件名稱、Type:文件格式 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"userInfos" ofType:@"plist"]; // 二、從路徑中獲取對應格式的數據 // 若是Root爲NSArray,則使用數組保存 NSArray *infos = [NSArray arrayWithContentsOfFile:filePath]; NSLog(@"%@",infos); // 若是Root爲NSDictionary,則使用字典保存 NSDictionary *infoDic = [NSDictionary dictionaryWithContentsOfFile:filePath]; NSLog(@"%@",infoDic);
####1.2 使用NSUserDefaults保存爲pist文件 iOS中除了手動添加plist文件外,還提供了 NSUserDefaults 類來將數據保存爲plist文件。NSUserDefaults 將自動生成plist文件,該文件保存在沙盒目錄中的Library/Preferences目錄中。rem
NSUserDefaults *deaults = [NSUserDefaults standardUserDefaults];
// 保存對象類型數據 [deaults setObject:@"保存的字符串" forKey:@"string"]; [deaults setObject:@100 forKey:@"number"]; NSArray *array = @[@1,@2,@3,@4]; [deaults setObject:array forKey:@"array"]; NSDictionary *dic = @{@"key1":@"value1",@"key2":@"value2"}; [deaults setObject:dic forKey:@"dic"]; // 保存基本類型數據,最終在plist中保存的是NSNumber類型。 [deaults setBool:YES forKey:@"bool"]; [deaults setInteger:100 forKey:@"integer"]; [deaults setDouble:3.33333 forKey:@"double"]; [deaults setFloat:3.15 forKey:@"float"];
NSString *str = [deaults objectForKey:@"string"]; NSArray *arr = [deaults objectForKey:@"array"];
[deaults removeObjectForKey:@"string"]; [deaults removeObjectForKey:@"array"];
[deaults synchronize];
####1.3 直接將數據寫入plist文件 經常使用的Foundation類(NSString、NSArray、NSDictionary等)都有一個writeToFile:atomically:
方法,用於將數據持久保存到指定的文件中。字符串
// 一、建立文件保存的文件路徑 NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *filePath = [docPath stringByAppendingPathComponent:@"test.plist"]; // 2.設置數據 NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; [userInfo setObject:@"張三" forKey:@"userName"]; [userInfo setObject:@"123456789" forKey:@"userPass"]; [userInfo setObject:@"13577893212" forKey:@"tel"]; // NSArray *infos = @[@100,@200,@300,@400]; // 3.將數據寫入文件 [userInfo writeToFile:filePath atomically:YES]; //[infos writeToFile:filePath atomically:YES];