Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wess/Shift
Super simple category for NSObject that adds a tiny state machine.
https://github.com/wess/Shift
Last synced: about 1 month ago
JSON representation
Super simple category for NSObject that adds a tiny state machine.
- Host: GitHub
- URL: https://github.com/wess/Shift
- Owner: wess
- License: mit
- Created: 2013-06-19T00:36:44.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-06-19T00:49:52.000Z (over 11 years ago)
- Last Synced: 2024-05-01T21:22:30.969Z (7 months ago)
- Language: Objective-C
- Size: 98.6 KB
- Stars: 119
- Watchers: 9
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - Shift - Super simple category for NSObject that adds a tiny state machine. (etc)
- awesome - Shift - Super simple category for NSObject that adds a tiny state machine. (etc)
README
# Shift
Shift is just a tiny category that adds a cute little state machine to NSObject. It's also a little bit of a learning project
that turns out to be a little bit useful at times.## Usage:
It's very simple to use, there really isn't a lot to it.```objective-c
#import "NSObject+Shift.h"// First we create an object.
NSString *string = @"Hello world";// Set a state for it.
string.shiftState = @"inactive";// Setup some callbacks when that state changes.
[string on:@"active" do:^(id self) {
NSLog(@"I have become active");
}];[string before:@"active" do:^(id self) {
NSLog(@"Going to print this before i become active");
}];[string after:@"inactive" do:^(id self) {
NSLog(@"Going to print after state has changed");
}];[string when:@"inactive" transitionsTo:@"active" do:^(id self) {
NSLog(@"OMG, My state is transitioning to!!");
}];[string when:@"active" transitionsFrom:@"inactive" do:^(id self) {
NSLog(@"OMG, My state is transitioning from!");
}];string.shiftState = @"active";
````
***
* [Github](http://www.github.com/wess)
* [@WessCope](http://www.twitter.com/wesscope)## License
Read LICENSE file for more info.