当前位置: 首页 > 面试题库 >

使用Xcode 6.1的Swift枚举.toRaw和.fromRaw

班凌
2023-03-14
问题内容

在Xcode 6.1中,枚举toRawfromRaw函数不再起作用:

enum TestEnum : String {
    case A = "a"
    case B = "b"
}

if let a = TestEnum.fromRaw("a") {
    prinln(a.toRaw())
}

错误:

'TestEnum' does not have a member named 'toRaw'
'TestEnum.Type' does not have a member named 'fromRaw'

问题答案:

使用失败的初始化器从原始创建枚举,rawValue并使用属性获取原始值rawValue

if let a = TestEnum(rawValue: "a") {
     println(a.rawValue)
}

阅读变更日志以获取更多信息。



 类似资料:
  • 枚举是用户定义的数据类型,由一组相关值组成。 关键字用于定义枚举数据类型。 枚举功能 Swift 4中的枚举也类似于C语言和Objective C的结构。 它在类中声明,并且通过该类的实例访问其值。 使用枚举初始化器定义初始成员值。 通过确保标准协议功能,还可以扩展其功能。 语法 使用关键字引入枚举,并将其整个定义放在一对括号中 - 例如,可以按如下方式定义星期几的枚举 - 示例代码 当使用pla

  • 枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。 Swift 的枚举类似于 Objective C 和 C 的结构,枚举的功能为: 它声明在类中,可以通过实例化类来访问它的值。 枚举也可以定义构造函数(initializers)来提供一个初始成员值;可以在原始的实现基础上扩展它们的功能。 可以遵守协议(protocols)来提供标准的功能。

  • 问题内容: 在Swift中应该如何声明和使用位字段? 像这样声明一个枚举确实可行,但是尝试对2个值进行或运算将无法编译: 我研究了Swift如何导入Foundation枚举类型,它是通过定义符合协议的a 来实现的: 而协议是: 但是,没有关于该协议的文档,我无法自己弄清楚如何实现它。此外,还不清楚这是实现位字段的官方Swift方法,还是这仅仅是Objective- C桥如何表示它们的方式。 问题答

  • 我有一种情况,我试图对一些数据进行二进制解码,数据类型既有数值,也有字符串值和名称。我正在考虑使用枚举,例如: 然而,我也知道: 或者举另一个例子: 是否有一种方法可以将此结构重构为枚举,以便我用整数值构造枚举,但我将枚举“读”为字符串?我很确定答案是否定的。

  • 问题内容: 您可以在Swift中继承枚举吗?关于枚举继承,应该注意哪些规则? 以下测试代码: 产生 问题答案: 在Swift语言中,我们有Structs,Enum和Classs。Struct和Enum通过副本传递,而类通过引用传递。只有类支持继承,枚举和结构不支持。 因此,要回答您的问题,您不能继承Enum(和Struct类型)。在这里看看:

  • 问题内容: 我要做什么才能完成此任务?另外,可以说我将其更改为: 我该如何使它符合Decodable? EDit 这是我的完整代码(不起作用) 最终编辑 另外,它将如何处理这样的枚举? 问题答案: 这很简单,只需使用或隐式分配的原始值即可。 被编码到并到 要么 被编码到并到 这是一个简单的示例如何使用它: