在swift中限制init()中的输入选项

时间:2014-11-27 10:46:07

标签: ios swift error-handling

我正在快速制作一个简单的Dice课程。

我希望用骰子应该具有的所需数量的眼睛/侧面来调用Dice初始化器。我有两个变量来设置你应该能够在初始化时给骰子的最小和最大边数......

但是,我不太确定如果使用超出此范围的数字初始化骰子时如何使init失败,而我无法在swift中使用try / catch。

我的代码如下:

class Dice : SKSpriteNode {

    let sides : UInt32
    var score : Int

    init(sides : Int){

        let min_sides = 2
        let max_sides = 6

        self.sides = UInt32(sides)
        self.score = 1

        let imageName = "1.png"
        let cardTexture = SKTexture(imageNamed: imageName)

        super.init(texture: cardTexture, color: nil, size: CGSize(width: 100, height: 100))
        userInteractionEnabled = true

}

1 个答案:

答案 0 :(得分:1)

使用可用的初始化程序。如果条件不满足,则可以返回nil

    init?(sides : Int){

     if sides > max_sides{
           return nil
         }
    }