我想在标签中显示名为pages的NSArray中当前的元素数。按照其他指南,我做了以下几点:
问题是当程序运行时,标签总是显示“0”。要检查事情是否正常工作,我尝试在用户点击另一个按钮时记录消息(该按钮基本上在pages数组中插入一个新元素):NSLog(@"count = %d", [self.pagesController valueForKeyPath:@"arrangedObjects.@count"]);
在这种情况下输出是正确的,即当前打印的数组中的元素数是正确的。
我错在哪里?
答案 0 :(得分:0)
许多人没有正确使用KVC。只有在重新定义pages
属性时才会通知您的阵列控制器,而不是在将对象添加到阵列时。尝试使用相应的更改通知包装代码:
[self willChangeValueForKey:@"pages"];
[pages addObject:someObject];
[self didChangeValueFOrKey:@"pages"];