天天看點

iOS-資料持久化-屬性清單

屬性清單

屬性清單檔案是一種XML檔案,Foundation架構中的數組和字典等都可以于屬性清單檔案互相轉換。

NSArray類常用讀寫屬性清單檔案的方法:

+arrayWithContentsOfFile:類級構造方法,用于從屬性清單檔案中讀取資料,建立NSArray對象。

-initWithContentsOfFile:執行個體構造方法,用于從屬性清單檔案中讀取資料,建立NSArray對象。

-writeToFile:atomically:該方法把NSArray對象寫入到屬性清單檔案中,第一個參數是檔案名,第二個參數為是否使用輔助檔案,如果為YES,則先寫入到一個輔助檔案,然後輔助檔案再重新命名為目标檔案,如果為NO,則直接寫入到目标檔案。

NSDictionary類常用讀寫屬性清單檔案的方法:

+dictionaryWithContentsOfFile:類級構造方法,用于從屬性清單檔案中讀取資料,建立NSDictionary對象。

-initWithContentsOfFile:執行個體構造方法,用于從屬性清單檔案中讀取資料,建立NSDictionary對象。

-writeToFile:atomically:該方法将NSDictionary對象寫入到屬性清單檔案中。

屬性清單檔案資料持久化具體方法,可參考以下實作方式:

假如在項目中手工建立了一個Contacts.plist檔案,并在該檔案中添加了幾條資料,如下圖所示。

當然也可以通過代碼直接建立plist檔案。

iOS-資料持久化-屬性清單

接下來需要做的是将項目資源的Contacts.plist檔案中資料複制到沙箱Documents目錄下。

createEditableCopyOfDatabaseIfNeeded方法中:

NSFileManager的copyItemAtPath:toPath:error:方法實作檔案複制。

NSAssert1是Foundation架構提供的宏,它在斷言失敗的情況下抛出異常,類似的還有NSAssert和NSAssert2等。

applicationDocumentsDirectoryFile方法中:

stringByAppendingPathComponent:能夠在目錄後面追加檔案名,傳回完整的檔案路徑。

沙箱Documents目錄下成功生成plist檔案之後,就可以進行增、删、改、查操作了。可參考如下代碼:

注:完成後,需要選擇Product->Clean菜單項清除一些再編譯。

Write the code ,change the world!