【问题标题】:Finite State Machine in Objective-CObjective-C 中的有限状态机
【发布时间】:2015-03-26 18:32:06
【问题描述】:

有没有人为用 Objective-C 代码编写的基本、紧凑的有限状态机/自动机提供解决方案?

我对可重用组件感兴趣,因此 FSM 添加了状态并定义了使用可重用状态类的操作。

【问题讨论】:

  • 那么你最终创建了一个吗?

标签: objective-c oop finite-automata


【解决方案1】:

我找到了一个很好的解决方案。这是我见过的 Objective-C 的最佳选择。享受 ;) https://github.com/est1908/SimpleStateMachine

【讨论】:

    【解决方案2】:

    你想要的是一个规则引擎......奇怪的是,我只能找到一个用于 Objective-C (BDRuleEngine) 的引擎,而且它已经过时了:

    http://eschatologist.net/bDistributed.com/index.html

    这可能是最好的起点,除非你想移植一些东西。

    【讨论】:

    • 不,不是在寻找规则引擎。我想要一个带有可重用类的基本 FSM。我在大约 3 个类中写了大约 200 行 C++ 中的一个。希望有人已经用 Obj-C 编码过。看来我得自己动手了。
    • 为什么你说的那个答案与选中的答案完全不符?为什么你不回来并用你最终做的事情来更新这个? (有点让它的价值在这里显着降低。)
    【解决方案3】:

    我是用 Java 做的。可能会移植...除了可重用的组件,状态机本身可以定义在一个数组中(作为数据),这使得它非常易于使用。

    http://code.google.com/p/state-machine/

    如果你想尝试移植它,我可能会提供帮助。

    【讨论】:

    • 优秀。我已经为我写的大学游戏用 C++ 编写了一个。我会看看你的。
    • 好吧,它看起来像一个大项目。那样的话我这几天比较忙,以后得看看。
    【解决方案4】:

    看这里http://www.sinelabore.com 它将 UML 状态图转换为 Objective-C(除了 C/C++)。

    彼得

    【讨论】:

      【解决方案5】:

      我刚刚在 Github 上发布了一个基于类的 Objective-C 有限状态机。与其说它具有可重用的类,不如说它提供了协议和抽象类供您重用其他类。我目前在一个已经有网络 REST API 对象的项目中使用它,这些对象确实需要组织为状态机。我将 NSObject 的超类更改为从状态机和状态以及其他一些方法继承,并且可以将代码重新组织为确定性有限自动机。

      https://github.com/StCredZero/SCZ-ObjC-StateMachine

      【讨论】:

        猜你喜欢
        • 2015-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-10
        • 1970-01-01
        相关资源
        最近更新 更多