Observe and dispatch any objects.
- Dispatch any object (no NSNotification like in NSNotificationCenter)
- Add observers with priority
- Add observers that get removed after execution (add once)
// Create your own dispatcher
GDDispatcher *dispatcher = [[GDDispatcher alloc] init];
// or use the shared dispatcher
GDDispatcher *dispatcher = [GDDispatcher sharedDispatcher];
[dispatcher addObserver:self forObject:[Greeting class]
withSelector:@selector(doSthLast:) priority:-5];
[dispatcher addObserver:self forObject:[Greeting class]
withSelector:@selector(doSthFirst:) priority:10];
You can add observers that get removed after execution
[dispatcher addObserverOnce:self forObject:[Greeting class]
withSelector:@selector(doSthLast:) priority:-5];
[dispatcher addObserverOnce:self forObject:[Greeting class]
withSelector:@selector(doSthFirst:) priority:10];
[dispatcher dispatchObject:[[Greeting alloc] initWithString:@"Hello"]];
// Logs
// Got greeting first: Hello
// Got greeting last: Hello
- (void)doSthFirst:(Greeting *)greeting {
NSLog(@"Got greeting first: %@", greeting.string);
}
- (void)doSthLast:(Greeting *)greeting {
NSLog(@"Got greeting last: %@", greeting.string);
}
You find the source files you need in Gummi-Dispatcher/Classes.
Install [CocoaPods] (http://cocoapods.org) and add the Gummi Dispatcher reference to your Podfile
platform :ios, '5.0'
pod 'Gummi-Dispatcher'
end
$ pod repo add sschmid-cocoapods-specs https://github.com/sschmid/cocoapods-specs
$ cd path/to/project
$ pod install
Open the created Xcode Workspace file.
- [Gummi Commander] (https://github.com/sschmid/Gummi-Commander) Event Command Mapping System for Objective-C