ADBStateMachine 1.0.0

ADBStateMachine 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 BSD 3.0
发布最后发布2015 年 3 月

Alberto De Bortoli 维护。



  • Alberto De Bortoli 编写

Objective-C 的正确线程安全状态机。

简单用法

  • 在您的项目中导入 Classes 文件夹中的文件,或者通过将 pod "ADBStateMachine" 添加到 Podfile 中来安装
  • 在您的类中导入 ADBStateMachine.h
  • 创建一个状态机,用初始状态分配给一个属性
self.stateMachine = [[ADBStateMachine alloc] initWithInitialState:@"Idle" callbackQueue:nil];
  • 创建转换并将其添加到状态机中(状态机会自动识别新状态)
ADBStateMachineTransition *t1 = [[ADBStateMachineTransition alloc] initWithEvent:@"start"
                                                                       fromState:@"Idle"
                                                                         toState:@"Started"
                                                                        preBlock:^{
                                                                            NSLog(@"Gonna move from Idle to Started!");
                                                                        }
                                                                       postBlock:^{
                                                                            NSLog(@"Just moved from Idle to Started!");
                                                                        }];

ADBStateMachineTransition *t2 = [[ADBStateMachineTransition alloc] initWithEvent:@"pause"
                                                                       fromState:@"Started"
                                                                         toState:@"Idle"
                                                                        preBlock:nil
                                                                       postBlock:nil];

[stateMachine addTransition:t1];
[stateMachine addTransition:t2];
  • 像这样处理事件
[stateMachine processEvent:@"start"];
[stateMachine processEvent:@"pause"];