【问题标题】:Best method to convert NSStrings to enums将 NSStrings 转换为枚举的最佳方法
【发布时间】:2011-11-02 19:22:25
【问题描述】:

假设我定义了这个枚举(来自 Apple 的 UIKit 框架):

typedef enum {
    UITextAutocorrectionTypeDefault,
    UITextAutocorrectionTypeNo,
    UITextAutocorrectionTypeYes,
} UITextAutocorrectionType;

我有一个带有“UITextAutocorrectionTypeDefault”值的简单字符串。在我的例子中,这个字符串来自一个 JSON 对象,但这并不重要。

将字符串转换为正确的枚举值以便我可以在类中设置属性的最佳方法是什么?我知道 Obj-C 不能直接转换值(就像你可以用 Java 或 C# 做的那样),在我的例子中,我有很多枚举,并且可能会在以后创建。除了必须手动创建映射字典之外,是否有任何自动或半自动的方式来执行此操作?

【问题讨论】:

    标签: objective-c ios enums nsstring


    【解决方案1】:

    C(阅读Objective-C)中,除了手动映射值之外,没有其他方法可以做到这一点。枚举只定义了在运行时不能转换为字符串或从字符串转换的常量值,就像在 C#Java 中一样,它们将它们视为对象。

    您可以在编译时使用stringify 值。

    【讨论】:

    • 谢谢。 stringify 看起来很有趣,我会更多地研究它。
    • 不是一个好的答案:“但是你可以......(链接到一些晦涩的东西,这显然不能映射到问题,我不会说如何)”
    • 所以你不同意一个正确的答案加上他们可以探索的另一个选项来字符串化值?
    猜你喜欢
    • 2021-12-23
    • 2014-03-29
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2013-08-25
    • 2020-08-21
    • 2021-01-04
    • 1970-01-01
    相关资源
    最近更新 更多