我正在尋找最佳的解決方案來實現這一行爲有一個單一的實體:最佳方式使用Magicalrecord
我有一個實體,稱爲客戶,這將只對核心數據的單個條目,因爲客戶將只有一個。
實現此目的的最佳解決方案是什麼?在創建之前是否每次檢查實體是否存在?
非常感謝
我正在尋找最佳的解決方案來實現這一行爲有一個單一的實體:最佳方式使用Magicalrecord
我有一個實體,稱爲客戶,這將只對核心數據的單個條目,因爲客戶將只有一個。
實現此目的的最佳解決方案是什麼?在創建之前是否每次檢查實體是否存在?
非常感謝
如前所述,您可以使用單個對象[NSUserDefaults standardUserDefaults]。
但是,如果你喜歡使用CoreData,這樣寫:
Customer* customer = [Customer MR_findFirst];
if (customer != nil)
{
//do something with it
} else
{
[Customer MR_importFromObject:JSONToImport];
}
BDW:
MR_importFromObject方法自動檢查是否存在實體,具有特定標識(ID鍵就用你的實體名稱的屬性加上「身份證」(在你的情況下,「customerID」)或名爲「mappedKeyName」的密鑰
如果具有此密鑰的實體已經存在 - 魔法記錄只是更新此實體。
所以,如果你指定該值在你的實體,只寫:
[Customer MR_importFromObject:JSONToImport];
檢查實體創建一個新的是一個好主意之前就存在。
您可以獲取您的客戶實體類型的所有實體並刪除它們,然後再添加一個新的實體類型爲另一種方法。
您也可以有一個簡單的方法來獲取當前客戶或創建一個,然後更新其所有屬性。
它的種類取決於你如何獲得數據以及你想要發生的相關對象。
計數的實體實例的數量也可以是一個檢查機制。 – Wain
如果只有一個實例,最好的解決方案通常是不把它放在覈心數據中。它給你很少,並增加了你所看到的複雜性。將必要的信息保存在屬性列表中,甚至以用戶默認值保存。
這是我正在做的準確方法!謝謝! :) –