2014-10-09 54 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

相关问题