修改NSArrayController对象的值会导致错误

时间:2012-08-23 00:05:10

标签: cocoa nsarraycontroller key-value-coding

我有一个NSArrayController,我正在尝试修改所选对象的值。我正在使用

[[[ideasListController selectedObjects] objectAtIndex:0] setValue:@"test" forKey:@"title"];

尝试更改标题,但这会导致错误:

[<__NSDictionaryI 0x10065e6c0> setValue:forUndefinedKey:]:
this class is not key value coding-compliant for the key title.

我对Cocoa和Objective-C相当新,所以我担心我可能会遗漏一些比较明显的东西。

2 个答案:

答案 0 :(得分:3)

你的字典是不可变的(这就是&lt; __ NSDictionaryI 0x10065e6c0&gt;中的“I”意思),所以当你试图改变它时,你就会收到错误消息。

答案 1 :(得分:2)

试试这个:

[ideasListController insertObject:[NSDictionary dictionaryWithObject:@"test" forKey:@"title"] atArrangedObjectIndex:0];

<强>更新

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];

[dict setObject:[NSString stringWithFormat:@"test"] forKey:@"title"];

[ideasListController insertObject:dict atArrangedObjectIndex:0];

[dict release];

NSLog(@"%@", [[ideasListController selectedObjects] objectAtIndex:0]);