1

我有一个 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 还很陌生,所以我担心我可能会在这里遗漏一些相当明显的东西。

4

2 回答 2

3

您的字典是不可变的(这就是 <__NSDictionaryI 0x10065e6c0> 中的“I”的含义),这就是为什么在尝试更改它时会收到错误消息的原因。

于 2012-08-23T04:37:30.627 回答
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]);
于 2012-08-23T00:13:42.770 回答