Objective c 装订标签';将s值设置为NSArray的count属性

Objective c 装订标签';将s值设置为NSArray的count属性,objective-c,cocoa,binding,nsarraycontroller,Objective C,Cocoa,Binding,Nsarraycontroller,我想在标签中显示名为pages的NSArray中当前的元素数。根据其他指南,我做了以下工作: 在IB中创建了一个NSArray控制器(称为pagesController),并将其绑定到NSArray页面 将标签的value属性绑定到NSArrayController,控制器键=arrangedObjects,模型键路径=@count 问题是,当程序运行时,标签总是显示“0”。为了检查这些功能是否正常工作,我尝试在用户单击另一个按钮时记录一条消息(该按钮基本上会在页面数组中插入新元素):NSLog

我想在标签中显示名为pages的NSArray中当前的元素数。根据其他指南,我做了以下工作:

  • 在IB中创建了一个NSArray控制器(称为pagesController),并将其绑定到NSArray页面
  • 将标签的value属性绑定到NSArrayController,控制器键=arrangedObjects,模型键路径=@count
  • 问题是,当程序运行时,标签总是显示“0”。为了检查这些功能是否正常工作,我尝试在用户单击另一个按钮时记录一条消息(该按钮基本上会在页面数组中插入新元素):
    NSLog(@“count=%d”,[self.pagesController valueForKeyPath:@“arrangedObjects@count”])
    在这种情况下,输出是正确的,即打印的阵列中的当前元素数是正确的。
    我错在哪里了

    您可能没有正确使用KVC。当对象添加到阵列中时,阵列控制器仅会收到重新定义
    页面
    属性的通知。尝试使用适当的更改通知包装代码:

    [self willChangeValueForKey:@"pages"];
    [pages addObject:someObject];
    [self didChangeValueFOrKey:@"pages"];
    

    您可能没有正确使用KVC。当对象添加到阵列中时,阵列控制器仅会收到重新定义
    页面
    属性的通知。尝试使用适当的更改通知包装代码:

    [self willChangeValueForKey:@"pages"];
    [pages addObject:someObject];
    [self didChangeValueFOrKey:@"pages"];
    

    一些代码更容易理解,你哪里出错了?你遵循了什么“其他指南”?当我在谷歌上搜索时,我只发现了这个问题。一些代码更容易理解,你哪里出错了?你遵循了什么“其他指南”?当我在谷歌上搜索时,我只找到了这个问题。