【发布时间】:2011-08-08 17:28:39
【问题描述】:
我想观察 NSMutableArray 对象的 count 属性。每当添加或删除对象时,我都能够直接观察数组的变化,方法是利用索引数组访问器进行一对多关系。但是,我想简单地观察 count 属性,这样当我使用我的 observeValueForKeyPath 方法时,传递给参数的对象是数组对象本身,而不是保存数组的类。
我的情况如下:
我有一个 NSMutableArray *cards 在我的 AppDelegate 类中声明为属性(和 ivar)。
从我的视图控制器,我尝试观察这个数组的计数属性:
[appDelegate.cards addObserver:self forKeyPath:@"count" options:0 context:NULL];
但是,这会使我的程序崩溃并出现以下错误:
[<__NSArrayM 0x4e17fd0 addObserver:forKeyPath:options:context] is not supported. Key path: count'
我已经尝试实现一对多关系的访问器
- (void)addCardsObject:(Card *)anObject;
- (void)removeCardsObject:(Card *)anObject;
但是,程序仍然崩溃。
我有几个问题:
- 我怎样才能观察到这个 NSMutableArray 的计数属性?
- NSMutableArray 的计数属性是定义为一对一关系,还是在确定它是一对多还是一对一关系时重要的整个对象(NSMutableArray 是一个集合对象,因此它是一个-many 关系,即使我只是想观察计数属性,而不是集合中对象的属性)。
提前致谢。
【问题讨论】:
标签: objective-c