arrayController“ valueForUndefinedKey”:为什么立即将其放开?
|
我的应用程序有2个窗口,它们都显示由控制器管理的NSScrollView对象。基本上,第一个具有数据,第二个具有适当的数据聚合。
两者都依赖于NSArrayController类的实现。
我正确地设计了两个窗口(至少我是这样认为的),但我不断收到此错误:
[<MyDocument 0x1020257c0> valueForUndefinedKey:]:
this class is not key value coding-compliant for the key <MY_ARRAY>.
我设法解决此问题的唯一方法是立即实例化(我的意思是,当准备好第一个窗口时)第二个数组,并以这种方式用一些值填充它:
NSMutableArray *newAggregates = [NSMutableArray array];
[newAggregates addObject:
[NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSString stringWithString:@\"category\"], @\"category\",
[NSString stringWithString:@\"subcategory\"], @\"subcategory\",
[NSNumber numberWithFloat:0.0], @\"amount_1\",
[NSNumber numberWithFloat:0.0], @\"amount_2\",
[NSNumber numberWithFloat:0.0], @\"amount_3\",
[NSNumber numberWithFloat:0.0], @\"amount_4\",
[NSNumber numberWithFloat:0.0], @\"amount_5\",
[NSNumber numberWithFloat:0.0], @\"amount_6\",
[NSNumber numberWithFloat:0.0], @\"amount_7\",
[NSNumber numberWithFloat:0.0], @\"amount_8\",
[NSNumber numberWithFloat:0.0], @\"amount_9\",
[NSNumber numberWithFloat:0.0], @\"amount_10\",
[NSNumber numberWithFloat:0.0], @\"amount_11\",
[NSNumber numberWithFloat:0.0], @\"amount_12\",
[NSNumber numberWithFloat:0.0], @\"total\",
nil]];
[self setAggregates:newAggregates];
这行得通,但这不是我想要的,我希望仅当用户按下某个按钮时才可选地执行第二个数组。
有没有办法做到这一点,或者必须在开始时实例化应用程序中存在的任何阵列控制器?我绝对确定必须有避免这种情况的方法...
没有找到相关结果
已邀请:
1 个回复
绵扇寸访
方法阻止了最终导致错误的调用?)。该错误意味着您在文档对象上绑定了名为“ 3”的属性。我想这可能是您的一个数组控制器的Content绑定。您需要将其更改为类中使用的属性的实际名称。