我的問題在於更新NSMutableArray,其中包含不同數量的NSDictionary's。每個NSDictionary都有6個密鑰,這些密鑰是根據用戶在表視圖中選擇的記錄從數據庫中檢索的。該數組鏈接到一個NSArrayController,它允許用戶選擇一個字典並查看內容。KVC兼容更新NSMutableArray持有NSDictionary的
如果字典數[count]發生變化,arrayController會更新視圖;沒問題。然而,在表視圖中選擇字典的次數是相同的,arrayController不會更新視圖,但模型會更新。
數組控制器在IB中綁定到模型數組,每當選擇在表視圖中更改時都會更新。
使用:
[self.selectedJobNotes addObject:[self.jobNotes objectAtIndex:i]];
這是不符合KVC。
但是使用(我認爲是符合KVC):
[[self.selectedJobNotes objectAtIndex:noteCount] setValue:[[self.jobNotes objectAtIndex:i]valueForKey:@「Content"] forKeyPath:@"Content"];
也不起作用。
有沒有什麼辦法告訴ArrayController這是一個新的數組/有新鮮的內容,所以重新加載。
[self.jobNotesArrayController fetch:self.a2gDataObject.selectedJobNotes];
似乎沒有工作???
感謝您的回覆。我會放棄它。與此同時,只需對數組進行去引用,然後創建一個新數組。 selectedJobNotes = nil; 笨拙,可能是錯誤的做法,但它短期有效。 我會盡力實現這些方法。 我想我嘗試了willChange/didChange,但他們沒有工作。可能沒有正確實施。 – Steve 2013-03-25 08:18:38
實現了這些方法,但我仍然必須銷燬並重新創建數組才能獲得所需的結果。可能仍然比以前做得更好。 – Steve 2013-03-25 09:40:13