2014-10-09 23 views
0

我的錯誤是它「無法在聲明之前捕獲'displayRandomWordFromArray'」我不知道這意味着什麼,我從我的老師。我不知道他是指UILabel還是一個按鈕。這是代碼。錯誤:「在聲明之前無法捕獲'displayRandomWordFromArray'」iOS Swift

let types = ["Alex", "Straub", "Rusher", "Graser"] 

var usedStringIndexs:[Int] = [] 

func someButtonPressed (button: UIButton) { 

    let string = types[displayRandomWordFromArray()] 

} 

func displayRandomWordFromArray() -> Int { 

    var randomNumber = Int(arc4random_uniform(UInt32(types.count))) 

    while contains(usedStringIndexs, randomNumber) { 

     randomNumber = Int(arc4random_uniform(UInt32(types.count))) 

    } 

    usedStringIndexs.append(randomNumber) 

    return randomNumber 

} 

謝謝你的努力,如果有任何問題,只是在問題上評論他們。

此代碼的目的是隨機經過所述陣列不重複的名稱

回答

0

這工作。我爲按鈕創建了一個IBAction。我在控制檯上打印了「字符串」。現在,您的方法的工作方式,它隨機選擇一個名稱,並在4按鈕後推動並停止工作。

import UIKit 

class ViewController: UIViewController { 


    let types = ["Alex", "Straub", "Rusher", "Graser"] 

    var usedStringIndexs:[Int] = [] 

    @IBAction func buttonPressed(sender: AnyObject) { 

     let string = types[displayRandomWordFromArray()] 
     println(string) 

    } 

    func displayRandomWordFromArray() -> Int { 

     var randomNumber = Int(arc4random_uniform(UInt32(types.count))) 

     while contains(usedStringIndexs, randomNumber) { 

      randomNumber = Int(arc4random_uniform(UInt32(types.count))) 

     } 

     usedStringIndexs.append(randomNumber) 

     return randomNumber 
    } 
    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 
} 

這種簡單的代碼打印一個隨機名稱每次:

import UIKit 

class ViewController: UIViewController { 


    let types = ["Alex", "Straub", "Rusher", "Graser"] 

    var usedStringIndexs:[Int] = [] 

    @IBAction func buttonPressed(sender: AnyObject) { 
     var randomNumber = Int(arc4random_uniform(UInt32(types.count))) 
     let string = types[randomNumber] 
     println(string) 
    } 
} 
+0

此代碼是否輸出一個名字兩次? – alex 2014-10-09 05:27:57

+0

第二個代碼的確如此。我不確定你想要什麼。如果您描述了所需的輸出,如果您的原始方法不適合您的需要,我會添加它。 – 2014-10-09 05:29:04

+0

非常感謝Steve,這非常完美! – alex 2014-10-09 05:41:56

相關問題