StateMachine

public class StateMachine : @unchecked Sendable

有限状态机

TransitionKit

  • 状态列表,只读

    Declaration

    Swift

    public private(set) var states: [StateObject] { get }
  • 事件列表,只读

    Declaration

    Swift

    public private(set) var events: [StateEvent] { get }
  • 当前状态,只读

    Declaration

    Swift

    public private(set) var state: StateObject? { get }
  • 初始化状态,未激活时可写

    Declaration

    Swift

    public var initialState: StateObject? { get set }
  • 是否已激活

    Declaration

    Swift

    public private(set) var isActive: Bool { get }
  • 初始化方法

    Declaration

    Swift

    public init()
  • 添加状态,未激活时生效

    Declaration

    Swift

    public func addState(_ object: StateObject)

    Parameters

    object

    状态对象

  • 批量添加状态,未激活时生效

    Declaration

    Swift

    public func addStates(_ objects: [StateObject])

    Parameters

    objects

    状态数组

  • 从名称获取状态

    Declaration

    Swift

    public func stateNamed(_ name: String) -> StateObject?

    Parameters

    name

    状态名称

    Return Value

    状态对象

  • 当前状态判断

    Declaration

    Swift

    public func isState(_ object: Any?) -> Bool

    Parameters

    object

    状态名称或对象

    Return Value

    判断结果

  • 添加事件,未激活时生效

    Declaration

    Swift

    public func addEvent(_ event: StateEvent)

    Parameters

    event

    事件对象

  • 批量添加事件,未激活时生效

    Declaration

    Swift

    public func addEvents(_ events: [StateEvent])

    Parameters

    events

    事件数组

  • 从名称获取事件

    Declaration

    Swift

    public func eventNamed(_ name: String) -> StateEvent?

    Parameters

    name

    事件名称

    Return Value

    事件对象

  • 激活并锁定状态机,锁定后不能修改初始状态、添加状态和事件

    Declaration

    Swift

    public func activate()
  • 事件是否可触发

    Declaration

    Swift

    public func canFireEvent(_ name: Any?) -> Bool

    Parameters

    name

    事件名称或对象

    Return Value

    是否可触发

  • 触发事件,未激活时自动激活

    Declaration

    Swift

    @discardableResult
    @MainActor
    public func fireEvent(_ name: Any?, object: Any? = nil) -> Bool

    Parameters

    name

    事件名称或对象

    object

    附加参数,默认nil

    Return Value

    触发状态