是否可以在Objective-C中执行类似的操作,比如我的数组计数是X,然后我希望它在发生时触发函数Y?那么NSArray的听众计数?
答案 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
然后,您可以通过将委托分配给子类并实现协议来监听事件。