Skip to content

flypigz/EventEmitter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js inspired EventEmitter for objective c.

Enhancement

Enable NSObject connect to a specific Event Emitter

  • (void)on:(NSString*)event sender:(id)sender notify:(EventEmitterNotifyCallback)callback;
  • (void)on:(NSString*)event sender:(id)sender callback:(EventEmitterDefaultCallback)callback;
  • (void)on:(NSString*)event sender:(id)sender array:(EventEmitterArrayCallback)callback;
  • (void)once:(NSString*)event sender:(id)sender notify:(EventEmitterNotifyCallback)callback;
  • (void)once:(NSString*)event sender:(id)sender callback:(EventEmitterDefaultCallback)callback;
  • (void)once:(NSString*)event sender:(id)sender array:(EventEmitterArrayCallback)callback;

Use it

Copy the EventEmitter class into your project or add this line to your Podfile

pod 'EventEmitter', '~> 0.1.1'

Quick API overview

Register event listener on any object:

#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);
	}
}];

And later fire an event to the same object:

#import "EventEmitter.h"

NSObject* emitter = ...;

[emitter emit:@"ready"];

[emitter emit:@"event" data:@{
	@"type": @"somethinghappend",
	@"another key": @"another value",
}];

Implementation details

About

Node.js inspired EventEmitter for objective c.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 100.0%