你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> plist基本操作(1)

plist基本操作(1)

編輯:IOS技巧綜合
[摘要]本文是對plist基本操作的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

重要概念:某些路徑下“只能讀,不能寫”的原因

iPhone、ipad真機上

Resouces文件夾:是只讀的,無法寫入。

document 和temp文件夾:可讀,可寫。

一、工程結構

二、源代碼

1、頭文件:PlistManage.h

@interface PlistManage : NSObject

-(void)resourcePathFileRead;//當前工程資源目錄,不同於真機“沙箱”中的路徑

-(NSString *)docPath;//獲取document文件夾路徑

-(BOOL)isDirNeedCreate:(NSString *)dirPath;//判斷目錄是否需要新創建

-(BOOL)isFileNeedCreate:(NSString *)filePath;//判斷文件是否需要創建

-(void) doAdd;

-(void) doRead;

-(void) doModify;

-(void) doDelete;
@end

2、一些基本函數的實現:

//獲取document目錄路徑
-(NSString *)docPath
{
    NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    return [paths objectAtIndex:0];
}
//路徑是否需要創建
-(BOOL)isDirNeedCreate:(NSString *)dirPath
{
    if ( NO == [[NSFileManager defaultManager] fileExistsAtPath:dirPath] )
    {
        return [[NSFileManager defaultManager] createDirectoryAtPath:dirPath
                                         withIntermediateDirectories:YES
                                                          attributes:nil
                                                               error:NULL];
    }
    
    return NO;
}
//文件是否需要創建
-(BOOL)isFileNeedCreate:(NSString *)filePath{
    if ( NO == [[NSFileManager defaultManager] fileExistsAtPath:filePath] )
    {
        return [[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
    }
    
    return NO;
}

3、添加:包括創建不存在的空文件

-(void) doAdd{
    
    NSString *docPath=[self docPath];
    NSLog(@"當前docment路徑:\n%@",docPath);
    NSString *dataFile=[docPath stringByAppendingPathComponent:@"docData.plist"];
    
    if (YES==[self isFileNeedCreate:dataFile]) {
        NSLog(@"文件原先不存在,現已新建空文件!");
    }else{
        NSLog(@"文件已存在,無需創建!");
    }
    
    NSMutableDictionary *plistDic = [[NSMutableDictionary alloc ] init];
    // 添加2個“單條記錄”
    [plistDic setObject:@"shanghai" forKey:@"recordKey001"];
    [plistDic setObject:@"beijing" forKey:@"recordKey002"];
    // 添加2個“字典記錄”
    [plistDic setObject:[NSDictionary dictionaryWithObjectsAndKeys:@"Jack",@"name",@"22",@"age",nil] forKey:@"dicKey001"];
    [plistDic setObject:[NSDictionary dictionaryWithObjectsAndKeys:@"Tom",@"name",@"33",@"age",nil] forKey:@"dicKey002"];
    
    [plistDic writeToFile:dataFile atomically:YES];//完全覆蓋
    NSLog(@"添加內容完成!!");
}

運行結果:

對應路徑下生成了新文件:

內容如下:

4、讀取

-(void) doRead{
    NSString *dataFile=[[self docPath] stringByAppendingPathComponent:@"docData.plist"];
    
    //讀取所有內容
    NSDictionary* dic = [NSDictionary dictionaryWithContentsOfFile:dataFile];
    NSLog(@"完整內容:\n%@",dic);
    
    //讀取第一層“字典記錄”
    NSDictionary* dicValue=[dic objectForKey:@"dicKey001"];
    NSLog(@"讀取第一層“字典記錄”:\n%@",dicValue);
    
    //讀取第一層“字典記錄”中的“子元素”
    NSLog(@"讀取第一層“字典記錄”中的“子元素”:\nname=%@",[dicValue objectForKey:@"name" ]);
    
    //讀取第一層“單條記錄”
    NSLog(@"讀取第一層“單條記錄”:\nrecordKey001=%@",[dic objectForKey:@"recordKey001"]);
}

運行結果:

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved