Swift: 枚举类型“无法构造,因为它没有可访问的初始化器”

6
我在Swift中遇到了这个错误:
``` 'BlockColor'无法构造,因为它没有可访问的初始化器。 ```
该错误提示表示在尝试创建`BlockColor`对象时,缺少必要的初始化信息。可能需要检查是否有未初始化的成员变量或者是否有必要的构造函数没有被实现。
import Foundation
import SpriteKit

let NumberOfColors: UInt32 = 6

enum BlockColor: Int, Printable {

case Blue = 0, Orange, Purple, Red, Teal, Yellow

var spriteName: String {
    switch self {
    case .Blue:
        return "blue"
    case .Orange:
        return "orange"
    case .Purple:
        return "purple"
    case .Red:
        return "red"
    case .Teal:
        return "teal"
    case .Yellow:
        return "yellow"
        }
}

var description: String {
    return self.spriteName
}

static func random() -> BlockColor {
    return BlockColor(rawValue:Int(arc4random_uniform(NumberOfColors)))!
}
}

我在这行代码中遇到了一个错误。
 return BlockColor(rawValue:Int(arc4random_uniform(NumberOfColors)))!

我已经多次检查了我的代码,但是找不到错误所在。

1
奇怪。你的代码在我的Xcode 6.1.1和Xcode 6.3 beta 2项目中编译没有错误。 - Martin R
2个回答

9

我遇到了同样的错误。我的错误在于,我没有为枚举方法(enum BlockColor:Int)指定任何返回(Int)类型。在初始化Int返回类型之后,它现在可以工作了。


我真的很喜欢StackOverflow。 - Jean Le Moignan

0
问题已解决 :) 似乎问题出在我的 Xcode 6.0 上。在 Xcode 6.2 beta 中代码可以正常工作。

1
Swift 版本的问题? - hippo_san

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接