2014-07-21 54 views
2

我錯過了什麼讓這段代碼工作? nodesLeft是[Int]。使用Swift array.count和arc4random()

let x = nodesLeft.count 
let r = Int(arc4random_uniform(x)) 

我得到一個錯誤:

遊樂場執行失敗:錯誤::136:40:錯誤: '的NSNumber' 不是 'UInt32的' 設R亞型= INT(arc4random_uniform(x)的)

+4

猜測'x'被推斷爲一個NSNumber投x和arc4random_uniform需要一個UInt32的,所以你需要將'x'強制轉換爲UInt32。 – user3386109

回答

7

我遇到了與arc4random_uniform()相同的問題;它的參數必須是一個UInt32投下x這樣:

let x = UInt32(nodesLeft.count) 
let r = Int(arc4random_uniform(x)) 
1

有在UInt32

var nodesLeft = ["T1", "T2", "T3", "T4"] 

    let x = UInt32(nodesLeft.count) 
    println(x) 

    let r = Int(arc4random_uniform(x)) 
    println(r)