Objective c 装订标签';将s值设置为NSArray的count属性
我想在标签中显示名为pages的NSArray中当前的元素数。根据其他指南,我做了以下工作: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
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"];
一些代码更容易理解,你哪里出错了?你遵循了什么“其他指南”?当我在谷歌上搜索时,我只发现了这个问题。一些代码更容易理解,你哪里出错了?你遵循了什么“其他指南”?当我在谷歌上搜索时,我只找到了这个问题。