迅速的错误

时间:2017-08-19 19:32:29

标签: swift3 enums

我是Xcode / Swift编程的新手,我正在尝试创建一个匹配3益智游戏,但我在尝试创建我的砖块时遇到困难。 我不能让我的砖随机发生器工作,因为Xcode给了我一些错误,我无法弄清楚如何解决。

我的类块可以工作,但它是枚举,它给了我错误,更具体地说是我想要的精灵值名称随机函数。

我在尝试返回任何块数组的原始值时遇到错误,这些数组要么使用不明确的运算符,要么只更改为原始值时表示字符串不适用于原始值。

我做错了什么?

enum BrickType: uint{

case uknown = 0
case yellowbrick = 1
case redbrick = 2
case orangebrick = 3
case blackbrick = 4
case bluebrick = 5
case tealbrick = 6
case greenbrick = 7
case whitebrick = 8

var spriteName: String{

    let spriteNames = [
        "yellowBrick",
        "blueBrick",
        "greenBrick",
        "orangeBrick",
        "redBrick",
        "whiteBrick",
        "tealBrick",
        "blackBrick"
    ]


    return spriteNames[rawValue - 1]
}

static func random() -> BrickType {
    return BrickType(rawValue: uint(arc4random_uniform(8)) + 1)!
}

}

class Blocks {

var column: Int = 0
var row: Int = 0
let brickType: BrickType
var sprite: SKSpriteNode?

init(column: Int, row: Int, brickType: BrickType) {
    self.column = column
    self.row = row
    self.brickType = brickType
}

}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

只使用Int而不是uintuint无法订阅数组

enum BrickType: Int {

...

return BrickType(rawValue: Int(arc4random_uniform(8)) + 1)!

由于Brick是枚举类型的一部分,0是默认值,我建议命名案例

case uknown, yellow, red, orange, black, blue, teal, green, white

原始值隐含相同。