Skip to content
/ Shift Public
forked from wess/Shift

Super simple category for NSObject that adds a tiny state machine.

License

Notifications You must be signed in to change notification settings

lldong/Shift

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

#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";

License

Read LICENSE file for more info.

About

Super simple category for NSObject that adds a tiny state machine.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published