設置:一個NSFetchedResultsController vs幾個UITableViews - 只有一個UITableView獲取更新?
我有幾個UITableViewControllers(tvc),所有實例化一個單獨的NSFetchedResultsController(frc)。所有這些frc-s使用相同的ManagedObjectContext(moc)。
場景:
有時候,從TVC-S的一個,我推出一些後臺進程更新數據。後臺進程更新單獨線程中的數據,最後在主線程上調用[moc mergeChangesFromContextDidSaveNotification:]。這些更改應該傳播給frc,並且應該調用[frcDelegate controllerDidChangeContent:]。這工作正常......但只適用於frcDelegate,其關聯的tvc啓動了更新。 (所有的TVC-S將擔任frcDelegate他們FRC)
預期的行爲:
,因爲所有的FRC-S被綁定到同商務部,所有的FRC-S應該拿起的變化,應該爲它們全部調用[frcDelegate controllerDidChangeContent:]。
實際行爲:
只有一個[frcDelegate controllerDidChangeContent:]被調用。
爲什麼我看到的實際行爲,而不是預期?我應該如何調試?或者這是正確的行爲?
FRC的只有觀察了在他們的獲取請求指定的實體的變化。你是否正在修改其他frc在這些更新中觀察到的實體? – gerry3 2010-02-02 10:08:03
你應該提交這個答案,因爲這就是它。 (應三思而行早上5點,然後再發布...)的剛收到的對象都是相同的實體,但FRC-S有不同的謂詞和新的對象只有一個特定的FRC的謂詞匹配。我應該在保存之前通過向對象添加更多信息來解決此問題,以便它匹配我希望匹配的frc-s的謂詞。 – Jaanus 2010-02-02 10:17:04