作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 Xcode 6 的 playground 在 Swift 中尝试枚举:
enum Rank: String
{
case One = "One", Two="Two"
init(rawValue : String)
{
self.rawValue = rawValue
}
}
我想覆盖 init 以便可以使用它的 rawValue 作为参数来初始化枚举。但是我得到一个错误:
但是根据Apple's Swift guide我的代码应该是正确的。
最佳答案
在 Xcode 6.0 之间枚举和它们的原始值之间的转换方法发生了变化和 Xcode 6.1。 fromRaw()
和 toRaw()
方法已被替换为一个(可失败的)初始化器和一个 rawValue
属性:
Xcode 6.0:
// raw value to enum:
if let rank = Rank.fromRaw("One") { }
// enum to raw value:
let str = rank.toRaw()
Xcode 6.1:
// raw value to enum:
if let rank = Rank(rawValue: "One") { }
// enum to raw value:
let str = rank.rawValue
关于swift - 无法识别枚举的 rawValue 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26444107/
我是一名优秀的程序员,十分优秀!