2017-02-18 66 views
0

我在實體「任務」中的名爲「boardIndex」的核心數據中有一個屬性(NSNumber)。每個boardIndex都是唯一的,這意味着不能使用boardIndex 3執行兩個任務。核心數據更新所有「索引」屬性(iOS)

當我更新boardIndex時,比如說從3到5,我需要通過增加或減少更新Core Data中所有其他實體「boardIndex」屬性減1(或什麼都不做)。例如,boardIndex爲4的任務現在爲3,boardIndex爲5的任務現在爲4,並且當前爲3的boardIndex現在爲5;類似於indexPath在tableView中的工作方式。

這樣做的最佳做法是什麼?我閱讀了「核心聚光燈」,但我不確定這是否是正確的方法。任何幫助都會很棒。

代碼是否有幫助:

//This only updates one task, how to update other tasks? 
task?.boardIndex = childIndexPath?.row as NSNumber? 
DataBaseManager.sharedInstance.save() 

回答

1

當我更新boardIndex,說3到5,我需要通過增加或遞減更新核心數據的所有其他實體「boardIndex」屬性1(或什麼都不做)。

要做到這一點,最好的方法是使用維護任務順序的數據結構。使用Core Data做到這一點的方法是使用有序的多對象屬性。

創建一個單獨的實體來保存任務列表。例如,您可能有一個Board實體,該實體與Task有多對多的有序關係。該有序關係將由您可以添加任務的對象NSOrderedSet表示。

我讀到了關於「核心聚光燈」的內容,但我不確定這是否是正確的方法。

這是一個完全不同類型的索引 - 射燈讓通過他們的設備上的數據的用戶搜索和核心焦點,您可以在搜索中包括應用程序數據。

+1

嘿Caleb,對於延誤抱歉。我相信這是我需要的答案。謝謝! –