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];
这行得通,但这不是我想要的,我希望仅当用户按下某个按钮时才可选地执行第二个数组。 有没有办法做到这一点,或者必须在开始时实例化应用程序中存在的任何阵列控制器?我绝对确定必须有避免这种情况的方法...     
已邀请:
我不知道您的解决方法为何有效(也许您的
setAggregates:
方法阻止了最终导致错误的调用?)。该错误意味着您在文档对象上绑定了名为“ 3”的属性。我想这可能是您的一个数组控制器的Content绑定。您需要将其更改为类中使用的属性的实际名称。     

要回复问题请先登录注册