字符串作为Swift中的对象引用

时间:2016-02-20 07:06:03

标签: ios swift

我的课程中有一个名为“游戏”的对象,我可以在其中访问另一个名为“computer1”的对象。

例如:

self

但是,有三台计算机(computer1,computer2,computer3),我随机选择一台计算机,然后使用String作为对象参考。

我的尝试:

game.computer1.doSomeMethod()

我想避免将随机数传入对象Game和if-else语句的嵌套,然后最终选择对我选择的对象执行一系列操作。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

为什么不使用数组而不是属性?

class Computer {
    let number: Int

    init(number: Int) {
        self.number = number
    }

    func doSomeMethod() {
        print("doing something with computer \(number)")
    }
}

class Game
{
    var computers: [Computer]

    init() {
        computers = [Computer]()
        for i in 1...3 {
            computers.append(Computer(number: i))
        }
    }

    func callRandomComputer() {
        let random = Int(arc4random_uniform(3))
        computers[random].doSomeMethod()
    }
}

let game = Game()
game.callRandomComputer()
game.callRandomComputer()
game.callRandomComputer()