IOS-Plist檔案儲存體(1),iosplist檔案
1.什麼是檔案系統?
IOS中每個應用都有自己的檔案系統,並有相應的存取權限,一般分為
~/Documents/
~/tmp/
~/Library/Caches/
~/Library/Preferences/-------鍵值對,不用關心檔案路徑。
其路徑的擷取方式為
<span style="color:#999999;">{ //擷取主目錄 NSString *path=NSHomeDirectory(); NSString *docPath=[path stringByAppendingPathComponent:@"Documents"]; NSLog(@"%@",docPath); //擷取檔案目錄 NSArray *DocumentPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSAllDomainsMask, YES); // NSLog(@"%@",DocumentPath[0]); //擷取緩衝目錄 NSArray *cachePath=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSAllDomainsMask, YES); // NSLog(@"%@",cachePath[0]); //擷取臨時目錄 NSString *temp=NSTemporaryDirectory(); // NSLog(@"%@",temp);}</span>
Plist檔案只能儲存NSString NSNumber NSData NSArray NSDictionary的內容,其檔案儲存體為xml格式
NSArray儲存到Documents中:
NSArray *arr=@[@"name",@"age",@"height"]; NSString *path=NSHomeDirectory(); NSString *docPath=[path stringByAppendingPathComponent:@"Documents"]; NSString *filepath=[docPath stringByAppendingPathComponent:@"/aa.plist"]; //把array儲存到plist檔案中 [arr writeToFile:filepath atomically:YES]; //從檔案路徑讀取為array NSArray *arr2=[NSArray arrayWithContentsOfFile:filepath];
NSDictionary儲存到Cache中:
NSDictionary *dic=@{@"name":@"lean",@"age":@24,@"height":@172 }; NSArray *dicArr=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSAllDomainsMask, YES); NSLog(@"%@",dicArr[0]); NSString *dirPath=dicArr[0]; NSString *filePath=[dirPath stringByAppendingPathComponent:@"dic.plist"]; //把Dictionary儲存到plist檔案中 [dic writeToFile:filePath atomically:YES]; //從檔案路徑讀取為Dictionary NSDictionary *dic2=[NSDictionary dictionaryWithContentsOfFile:filePath ];
NSData讀取圖片:
//讀寫圖片吧能直接儲存 只能通過NSData來儲存。 //以下例子為從UIImageView中隱藏檔並在另一個控制項中讀取顯示 NSArray *arr=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSAllDomainsMask, YES); NSLog(@"%@",arr[0]); NSString *cachePath=arr[0]; NSString *filePath=[cachePath stringByAppendingPathComponent:@"image.plist"]; UIImage *image=[self.a image]; NSData *data=UIImageJPEGRepresentation(image,1); [data writeToFile:filePath atomically:YES]; NSData *data2=[NSData dataWithContentsOfFile:filePath]; UIImage *image2=[UIImage imageWithData:data2 ]; self.b.image=image2;
ios編程:plist檔案中是否可以寫邏輯運算子應該吧plist檔案只儲存些資料試試行了
iOS開發:Plist檔案讀寫。1、讀取+寫入plist;2、根據plist節點內容建立UITab//擷取plist地址
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"UpgradeDataArray" ofType:@"plist"];
NSMutableDictionary *dataDic = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; //根據存入類型取出對應資料
//添加項內容
[dataDic setObject:arr forKey:@"upgradeData"];
//擷取應用程式沙箱Documents目錄
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *plistPath1 = [paths objectAtIndex:0];
//得完整檔案名稱
NSString *filename=[plistPath1 stringByAppendingPathComponent:@"UpgradeDataArray.plist"];
//輸入寫入
BOOL fl = [dataDic writeToFile:filename atomically:YES]; //寫入
提問容易回答易且問且採納