关于NSMutableArray大小的监听器和观察者

时间:2011-10-12 03:29:27

标签: iphone objective-c ios ipad

是否可以在Objective-C中执行类似的操作,比如我的数组计数是X,然后我希望它在发生时触发函数Y?那么NSArray的听众计数?

2 个答案:

答案 0 :(得分:1)

我相信你可以创建一个侦听数组变化的观察者。当它被触发时,你可以检查数组的大小,如果满足条件,则调用方法Y.

答案 1 :(得分:-2)

你可以编写一个协议(例如调用它MutableArrayDelegate),然后扩展NSMutableArray(确保恰当地调用[super ...])在发生某些事件时调用委托方法。

例如,每次添加对象时添加一个侦听器:

@protocol MutableArrayDelegate
- (void)mutableArrayDidAddObject:(NSMutableArray *)mutableArray;
@end

@interface ObservableMutableArray : NSMutableArray
@property (nonatomic, assign) id<MutableArrayDelegate> delegate;
@end

@implementation ObservableMutableArray
@synthesize delegate;

- (void)addObject:(id)anObject
{
     [super addObject:anObject];
     [delegate mutableArrayDidAddObject:self];
}
@end

然后,您可以通过将委托分配给子类并实现协议来监听事件。