1. 程式人生 > >ios 簡單的plist檔案讀寫操作(Document和NSUserDefaults)

ios 簡單的plist檔案讀寫操作(Document和NSUserDefaults)

//    [self getDocoumentsPath];//蘋果建議將程式建立產生的檔案以及應用瀏覽產生的檔案資料儲存在該目錄下,iTunes備份和恢復的時候會包括此目錄

//    [self getLibraryPath];//儲存程式的系統預設狀態設定

//    [self getCachePath];//存放快取檔案,儲存應用的持久化資料,用於應用升級或者應用關閉後的資料儲存,但不會被itunes同步,所以為了減少同步的時間,可以考慮將一些比較大的檔案而又不需要備份的檔案放到這個目錄下

//    [self getTmpPath];//儲存不是持久化資料,在程式啟動時存在,應用關閉時目錄資料刪除,系統程式不執行時需要刪除的資料。

//    [self creartFolder];


//獲取應用程式程式包中資原始檔路徑的方法:

//例如獲取程式包中一個圖片資源(apple.png)路徑的方法:

- (void)getImagePath

{

NSString *imagePath = [[NSBundlemainBundle] pathForResource:@"apple"ofType:@"png"];

UIImage *appleImage = [[UIImagealloc] initWithContentsOfFile:imagePath];

//    程式碼中的mainBundle類方法用於返回一個代表應用程式包的物件。

}

//獲取沙盒根路徑

- (NSString*)dirHomePath

{

NSString * strDir = NSHomeDirectory();

NSLog(@"strDir:%@",strDir);

return strDir;

}

//獲取Docoument目錄路徑

- (NSString*)getDocoumentsPath

{

NSArray * pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMask, YES);

NSString * strPath = [pathArray

objectAtIndex:0];

NSLog(@"DocoumentsPath:%@", strPath);

return strPath;

}

//獲取Library目錄路徑

- (void)getLibraryPath

{

NSArray * pathArray = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

NSString * strPath = [pathArray objectAtIndex:0];

NSLog(@"LibraryPath:%@",strPath);

}

//獲取Cache目錄路徑

- (void)getCachePath

{

NSArray *cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *cachePath = [cacPath objectAtIndex:0];

NSLog(@"app_home_lib_cache: %@",cachePath);

}

//獲取Tmp目錄路徑

-(NSString*)getTmpPath

{

NSString * strTmp = NSTemporaryDirectory();

NSLog(@"app_tmp:%@", strTmp);

return strTmp;

}

//建立資料夾

- (NSString*)creartFolder

{

NSString * strdoc = [selfgetTmpPath];//[self getDocoumentsPath];

NSFileManager * filemanager = [NSFileManagerdefaultManager];

NSString * docmtestDirectory = [strdoc stringByAppendingPathComponent:@"leikezhu"];

BOOL isOk = [filemanager createDirectoryAtPath:docmtestDirectory withIntermediateDirectories:YESattributes:nilerror:nil];

if (isOk) {

NSLog(@"success");

    }else

    {

NSLog(@"faild");

    }

return docmtestDirectory;

}

//建立檔案

- (void)createFile

{

//    NSString * strfile = [self getTmpPath];

//    NSString *testDirectory = [strfile stringByAppendingPathComponent:@"leitest"];

NSString *testDirectory = [selfcreartFolder];

NSFileManager *fileManager = [NSFileManagerdefaultManager];

NSString *testPath = [testDirectory stringByAppendingPathComponent:@"leitest.plist"];

BOOL res=[fileManager createFileAtPath:testPath contents:nilattributes:nil];

if (res) {

NSLog(@"檔案建立成功: %@" ,testPath);

NSMutableArray *rootArray = [NSMutableArrayarrayWithContentsOfFile:testPath];

NSArray *addContent = [NSArrayarrayWithObjects:@"One", @"two", @"three", @"four", nil];

NSMutableDictionary * dict = [[NSMutableDictionaryalloc] init];//[rootArray objectAtIndex:3];

        [dict setObject:addContent forKey:@"insert array content"];

BOOL ret = [dict writeToFile:testPath atomically:YES];

NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults];//獲取標準函式物件

NSMutableDictionary *defaultcoordinate = [defaults objectForKey:@"insert array content"];//通過物件獲取名稱下NSMutableDictionary資料

NSString *currentCity = [defaultcoordinate objectForKey:@"c_name"];

        [defaults setObject:@"kaka"forKey:@"newdata"];//新增id物件型別資料

        [defaults objectForKey:@"newdata"];//獲取物件型別資料

        [defaults setDouble:2013 forKey:@"double"];//新增double型別資料

        [defaults doubleForKey:@"double"];//獲取double型別資料

        [defaults setBool:NOforKey:@"BOOL"];//新增BOOL型別資料

        [defaults boolForKey:@"BOOL"];//獲取BOOL型別資料

        [defaults setInteger:12 forKey:@"int"];//新增int型別資料

        [defaults integerForKey:@"int"];//獲取int型別資料

        [defaults synchronize];

//        if (ret) {

//            NSLog(@"寫入檔案失敗");

//        }else

//            NSLog(@"寫入檔案失敗");

    }else

NSLog(@"檔案建立失敗");

}

//