iOS状态机
易于使用的iOS平台状态机。将库安装到项目中,无需处理复杂逻辑的状态。
示例
要运行示例项目,请克隆存储库,然后首先从Example目录运行 pod install
。
StateMachine<Events, States>(currentState: .state1) { stateMachine in
let mappingDisposable = stateMachine.addRouteMapping { (event, state) -> ViewController.States? in
switch (event, state) {
case (.event1, .state1):
print("event1 triggered -> state1 to state2")
return .state2
case (.event2, .state2):
print("event2 triggered -> state2 to state1")
return .state1
default:
return nil
}
}
stateMachine.addRoute { (fromState, toState) in
switch (fromState, toState) {
case (.state1, .state2):
print("state1 to state2")
stateMachine >>> .event2
case (.state2, .state1):
print("state2 to state1")
mappingDisposable.dispose()
// it does not trigger mapping functions. Cause of dispose()
stateMachine >>> .event1
default:
break
}
}
// event1 triggered
stateMachine >>> .event1
}
安装
iOS状态机可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中
pod 'iOSStateMachine'
作者
ilyadaberdil, [email protected]
许可证
iOS状态机遵从MIT许可证。有关更多信息,请参阅LICENSE文件。