1

NSMutableDictionariesで満たされたNSMutableArrayがあります。このすべてのデータはNSTableViewに表示されます。

問題は、セルを編集しようとしたときです。テーブルビューは、データソースバインディングを使用してクラスにバインドされています。セルの値を編集するには、次のコードを使用します。

 -(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 に答える