我的问题在于更新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