基于 Node.js 的 EventEmitter,适用于 Objective C。
将 EventEmitter 类复制到您的项目中,或者将此行添加到您的 Podfile
pod 'EventEmitter', '~> 0.1.3'
在任何对象上注册事件监听器
#import "EventEmitter.h"
NSObject* emitter = [[NSObject alloc] init];
__block BOOL ready = NO;
[emitter on:@"ready" notify:^() {
NSLog(@"Yepp! The object is ready now!");
ready = YES;
}];
[emitter on:@"event" callback:^(NSDictionary* data) {
if (ready) {
NSLog(@"Receive event with data: %@", data);
}
}];
然后向相同对象触发事件
#import "EventEmitter.h"
NSObject* emitter = ...;
[emitter emit:@"ready"];
[emitter emit:@"event" data:@{
@"type": @"somethinghappend",
@"another key": @"another value",
}];