1. 程式人生 > >json檔案轉為plist檔案輸出(及檔案存放路徑)

json檔案轉為plist檔案輸出(及檔案存放路徑)

從xx.json檔案中讀取JSON資料,寫入到xx.plist檔案中,實現程式碼如下:

    NSString *path = @"/Users/apple/Desktop/testJtoP/testJtoP/1_category.json";
    NSArray *array = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:path] options:NSJSONReadingMutableLeaves error:nil];
    
    BOOL state = [array writeToFile:@"/Users/apple/Desktop/1_category.plist" atomically:YES];
    if(state){
        NSLog(@"成功");
    }else{
        NSLog(@"失敗");
    }


ps:需在模擬器上執行

writeToFile寫入不成功的原因 :

If an array or dictionary contains objects that are not property-list objects, then you cannot save and restore the hierarchy of data using the various property-list methods and functions.
 

要存的不能為你自定義的物件,也不能是null

iOS的檔案分類、存放路徑及檔案屬性

關鍵資料

內容:使用者建立的資料檔案,無法在刪除後自動重新建立,且會

路徑:主目錄/Documents

屬性:不要設定"不備份"

管理:iOS系統即時遇到儲存空間不足的情況下,也不會清除,同時會備份到iTunes或iCloud中

快取資料

內容:可用於離線環境,可被重複下載重複生成,即時在離線時缺失,應用本身也可以正常執行

路徑:主目錄/Library/Caches

屬性:預設

管理:在儲存空間不足的情況下,會清空,並且不會被自動備份到iTunes和iCloud中

臨時資料

內容:應用執行時,為完成某個內部操作臨時生成的檔案

路徑:主目錄/tmp

屬性:預設

管理:隨時可能被ios系統清除,且不會自動備份到iTunes和iCloud,儘量在檔案不再使用時,應用自己情況,避免對使用者裝置空間的浪費

離線資料

內容:與快取資料類似,可以被重新下載和重建,但是使用者往往希望在離線時資料依然能夠託托地存在著

目錄:主目錄/Documents 或主目錄/Library/自定義的資料夾

屬性:放於Documents下不需設定,放在自定義資料夾中需設定"不備份"

管理:與關鍵資料類似,即時在儲存空間不足的情況下也不會清楚,應用自己應該清除已經不再使用的檔案,以免浪費使用者裝置空間

1.Documents:

只有使用者生成的檔案、其他資料及其他程式不能重新建立的檔案,應該儲存在<Application_Home>/Documents 目錄下面,並將通過iCloud自動備份。

2.Library:

可以重新下載或者重新生成的資料應該儲存在 <Application_Home>/Library/Caches 目錄下面。舉個例子,比如雜誌、新聞、地圖應用使用的資料庫快取檔案和可下載內容應該儲存到這個資料夾。

3.tmp:

只是臨時使用的資料應該儲存到 <Application_Home>/tmp 資料夾。儘管 iCloud 不會備份這些檔案,但在應用在使用完這些資料之後要注意隨時刪除,避免佔用使用者裝置的空間

注意: 一定要把要存的檔案存到正確的位置,不然在稽核的時候有可能因為違反蘋果的規則而被拒!

參考:http://blog.csdn.net/android_ls/article/details/40121525

           http://blog.csdn.net/niitlcj/article/details/7494719