屬性清單
屬性清單檔案是一種XML檔案,Foundation架構中的數組和字典等都可以于屬性清單檔案互相轉換。
NSArray類常用讀寫屬性清單檔案的方法:
+arrayWithContentsOfFile:類級構造方法,用于從屬性清單檔案中讀取資料,建立NSArray對象。
-initWithContentsOfFile:執行個體構造方法,用于從屬性清單檔案中讀取資料,建立NSArray對象。
-writeToFile:atomically:該方法把NSArray對象寫入到屬性清單檔案中,第一個參數是檔案名,第二個參數為是否使用輔助檔案,如果為YES,則先寫入到一個輔助檔案,然後輔助檔案再重新命名為目标檔案,如果為NO,則直接寫入到目标檔案。
NSDictionary類常用讀寫屬性清單檔案的方法:
+dictionaryWithContentsOfFile:類級構造方法,用于從屬性清單檔案中讀取資料,建立NSDictionary對象。
-initWithContentsOfFile:執行個體構造方法,用于從屬性清單檔案中讀取資料,建立NSDictionary對象。
-writeToFile:atomically:該方法将NSDictionary對象寫入到屬性清單檔案中。
屬性清單檔案資料持久化具體方法,可參考以下實作方式:
假如在項目中手工建立了一個Contacts.plist檔案,并在該檔案中添加了幾條資料,如下圖所示。
當然也可以通過代碼直接建立plist檔案。

接下來需要做的是将項目資源的Contacts.plist檔案中資料複制到沙箱Documents目錄下。
createEditableCopyOfDatabaseIfNeeded方法中:
NSFileManager的copyItemAtPath:toPath:error:方法實作檔案複制。
NSAssert1是Foundation架構提供的宏,它在斷言失敗的情況下抛出異常,類似的還有NSAssert和NSAssert2等。
applicationDocumentsDirectoryFile方法中:
stringByAppendingPathComponent:能夠在目錄後面追加檔案名,傳回完整的檔案路徑。
沙箱Documents目錄下成功生成plist檔案之後,就可以進行增、删、改、查操作了。可參考如下代碼:
注:完成後,需要選擇Product->Clean菜單項清除一些再編譯。
Write the code ,change the world!