3

我有一個NSFetchedResultsController,它顯示錶視圖中的項目列表,包括關聯實體的計數。當爲這個關聯添加一個對象時(使用addXXXObject),不會調用回調函數來通知控制器更新。當關聯計數發生變化時強制NSFetchedResultsController更新

如何接收正在添加到父實體的NSSet的對象的通知,或者強制提取的結果控制器更新?

要清楚,我目前正在使用parent.children.count檢索計數,這可能不是最理想的。有沒有更好的方法去做這件事?它基本上只是一個像iPhone郵件應用程序的屏幕,其中的文件夾顯示了內部的郵件數量。

回答

0

我的模型有點不同,但它可以很容易地被翻譯成你的模型。
我有一個樹狀結構:

    • 標題
    • 父(一對一)
  • 文件夾:元
    • 兒童(一對多)
  • 文件:元素

當文件被添加或刪除時,只有隊列中的第一個文件夾會收到有關此更改的通知。當文件標題發生變化時,不會收到通知。那麼該怎麼辦?
我試過重寫-willChangeValueForKey:和-didChangeValueForKey:在我的Element類中。

- (void)willChangeValueForKey:(NSString *)key 
{ 
    [super willChangeValueForKey:key]; 
    [self.parent willChangeValueForKey:@"children"]; 
} 

- (void)didChangeValueForKey:(NSString *)key 
{ 
    [super didChangeValueForKey:key]; 
    [self.parent didChangeValueForKey:@"children"]; 
} 

基本上,這樣做是什麼迫使父文件夾更新,因爲它的一個孩子更改。
希望它也適用於你。

相關問題