2017-09-02 57 views
2

我有一個小問題,並想盡一切辦法弄清楚。我知道這個問題,但我不知道如何解決它。我正在使用CoreData和fetchedResultsController。我的實體被稱爲「名」和SortDescriptor也是「名」。 如果我有一個單一的項目保存到CoreData並更改名稱值,FetchedResultsController調用的.move代替.update在我的TableView標籤沒有更新。重新啓動應用程序或更改項目的不同值後,名稱也會更新。 如果我有保存到CoreData一切不止一個項目工作沒有任何問題。更新項目不刷新的tableView

如何保持對「名」的SortDescriptor也更新我的tableView的價值。

感謝

+0

檢查.move調用中的indexPath和newIndexPath。如果它們相同,則更新標籤。 – pbasdf

回答

0

不要忘記把:self.tableView.reloadData()在正確的地方。

+1

謝謝,我忘了把tableView.reloadData()到.move情況。認爲tableView.beginUpdates()和tableView.endUpdates()會照顧到這一點。我檢查了indexPath == newIndexPath並重新加載了tableView。 Else移動了這一行。 – eberhapa

+0

現在,爲了進一步優化它,您可以嘗試在所需部分的正確單元索引值處更新它。 :) –

0

最簡單的辦法是訂閱命名通過KVO我們的數據項的屬性。只需將您的單元格添加爲觀察者,並在數據對象更改後立即更新您的UI元素。

注意:不要忘了退訂prepareForReuse