我是iOS中的新成員,Swift。我的應用程序有一個名爲「類別」的實體與許多名爲「電影」的實體有關係。如何避免核心數據中的重複記錄 - ios
根據我從網址獲得的數據,「電影」實體正在改變。我正在尋找一種不在每個類別中都有重複的電影記錄的方法,我想不出一種簡單的方法來做到這一點。
我是iOS中的新成員,Swift。我的應用程序有一個名爲「類別」的實體與許多名爲「電影」的實體有關係。如何避免核心數據中的重複記錄 - ios
根據我從網址獲得的數據,「電影」實體正在改變。我正在尋找一種不在每個類別中都有重複的電影記錄的方法,我想不出一種簡單的方法來做到這一點。
核心數據沒有內置的方法來確保唯一性。你必須自己管理。但這並不難。在每次插入/更新之前進行一次提取 - 如果它不存在,則創建它,如果已經存在,則更新它。如果您一次更新很多(例如,來自具有更新許多實體的網絡請求),則可以在單個提取請求中提取所有內容,然後根據需要創建或更新。
通常這些提取是使用uniqueIds爲每個實體完成的。如果你沒有任何uniqueId爲你的實體,那麼你有比核心數據更深的問題。您可以擁有兩個具有相同名稱的電影,或一個具有不同名稱的電影。如果您沒有任何相同的內容,那麼您基本上無法知道是否需要創建另一個實體或更新現有實體。您可以使用電影名稱,但我不會推薦。我建議你仔細觀察一下你的服務器api,看看是否有唯一的Id被服務,如果沒有,那麼你必須讓服務器團隊修復它。
如何讓我的電影名稱成爲唯一的ID? – benh
按名稱獲取新數據搜索現有電影時。如果你找到一個然後更新它,如果你沒有創建它。 (這又是一個糟糕的想法 - 你的系統對每部電影都有uniqueIds,如果服務器沒有給你一個uniqueId,我會感到非常驚訝)。 –
實體是否有唯一的ID? –
不,他們沒有。該類別有一個限制,電影沒有。 – benh
你在問什麼?標題說重複但問題說不? – sage444