【问题标题】:Using custom enums in a FlatBuffer在 FlatBuffer 中使用自定义枚举
【发布时间】:2018-05-20 16:28:48
【问题描述】:

我正在使用 C++ API for FlatBuffers 来存储和检索用 Objective-C 编写的 macOS 应用程序的首选项。

我存储的许多首选项都是我在整个应用程序中使用的类型定义的枚举。无论如何在 FlatBuffer 模式中使用那些现有的枚举,以便我可以将它们用作默认值?

例如,我想做以下事情:

  table Preferences {
    layout:int = FLLayoutModeList;
    sidebar:int = FLSidebarElementInspector;
  }

FLLayoutModeListFLSidebarElementInspector 在我的 Objective-C 中分别定义为 FLLayoutModeFLSidebarElement 枚举。

这可以使用 C++ 原生类型接口来完成吗?请注意,我只是从我自己的代码中读取和写入这个 FlatBuffer。它不会与其他应用程序共享,也不需要任何跨语言支持,如果这很重要的话。

【问题讨论】:

    标签: c++ flatbuffers


    【解决方案1】:

    模式无法包含来自非模式的定义,即 C++ 或 Objective C 代码。不必复制它们的唯一方法是在 FlatBuffers 模式中定义它们并使用从那里生成的代码。反过来就不行了。

    请注意,如果您使用的是 Objective C(而不是 Objective C++),您可以使用 flatcc 架构编译器来生成纯 C,这可能会更好。

    【讨论】:

    • 谢谢。我将重新访问 flatcc,但我也很高兴仅使用 C++ API。值得庆幸的是,Objective-C++ 足以满足我的基本需求。
    猜你喜欢
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2011-09-11
    • 2020-06-03
    相关资源
    最近更新 更多