1

我有一个充满 NSMutableDictionaries 的 NSMutableArray。所有这些数据都显示在 NSTableView 中。

问题是当我尝试编辑单元格时。我的 tableview 通过数据源绑定绑定到我的类。并编辑单元格的值,我使用以下代码:

 -(void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{

NSMutableDictionary *i = [list objectAtIndex:row];
NSString *identifier = [tableColumn identifier];
[i setValue:object forKey:identifier];

 }

但它抛出一个错误:

2013-02-11 20:50:35.960 prog[424:303] Exception detected while handling key input.
2013-02-11 20:50:35.960 prog[424:303] [<__NSDictionaryI 0x105986580>     setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key filename.
2013-02-11 20:50:35.964 prog[424:303] (

我不明白为什么我会收到这个NSDictionaryI错误。我在任何地方都使用 NSMutableDictionary,即使我将字典添加到数组中。任何帮助表示赞赏。

4

2 回答 2

0

我认为

setValue:forUndefinedKey

意味着,您的 tableColumn 标识符有问题。检查 Interface Builder 中的设置标识符和/或设置断点(或仅执行 NSLog(@"%@", tableColumn.identifier);)

于 2013-02-11T21:52:42.453 回答
0

我发现了问题!

当我向数组中添加元素时,我使用的是 COPY。删除它使它工作!

[myNSMutableArray addObject: myNSMutableDictionary];

在我使用之前

[myNSMutableArray addObject:copy myNSMutableDictionary];

于 2013-02-12T07:01:58.553 回答