【发布时间】:2011-05-29 17:42:26
【问题描述】:
我创建了一个 nsarraycontroller 来在我的 nstableview 上显示它的数据。这是有效的。但是我现在如何修改这些数据呢?
[arrayController addObject:[...]]
添加一个对象,我该如何取回它?
我试过了:
NSMutableArray *data = [arrayController mutableArrayValueForKey:@"column1"];]
然后我得到这个错误
2011-05-29 19:25:50.125 TestApp[1665:903] [<NSArrayController 0x113808500> valueForUndefinedKey:]: this class is not key value coding-compliant for the key column1.
(我的arraycontroller 中的对象代表我视图中的行是一个由4 个属性组成的类(名为FileEntry),我将这些作为键添加到我的nsarraycontroller)
我认为 kvc-compilant 意味着每个属性都有一个 getter 和 setter? (这不是属性的作用吗?)。
如果我可以使用这个功能,我测试了我的班级:
FileEntry *entry = [[FileEntry alloc] initWithUrl:@"test"]; //(this adds the string "test" to the property "fileurl")
NSLog(@"%@\n", [entry valueForKey:@"fileurl"]);
and it returns:
> 2011-05-29 19:31:54.760 TestApp[1718:903] test
它有效。那我的课怎么能不是kvc-compilant呢?
无论如何,我也尝试使用 tableviews 数据源,但无法让这 2 个函数正常工作。那会比nsarraycontroller 更有用吗?甚至可以修改nsarraycontroller的数据吗?
【问题讨论】:
标签: objective-c cocoa edit nsarraycontroller key-value-coding