簡體   English   中英

無法隨機選擇數組Swift的元素

[英]unable to random pick a element for the array Swift

@IBOutlet weak var enterName: UITextField!
@IBOutlet weak var presentName: UITextView!
@IBOutlet weak var independceStatue: UITextField!
@IBOutlet weak var driverSelection: UITextField!


var entity : [Entity] = []
var nameList : [String] = []
var period1 = ""
var counting = 0

override func viewDidLoad() {
    super.viewDidLoad()
    let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
    let request = NSFetchRequest(entityName: "Entity")
    var results : [AnyObject]?

    do{
        results = try context.executeFetchRequest(request)
    } catch {
        results = nil
    }
    if results != nil {
        self.entity = results as! [Entity]
    }

    if !entity.isEmpty{
        presentName.text = entity.last?.period1Core
    }

}



func setValues() {
    nameList = [enterName.text!]
}

@IBAction func setName(sender: UIButton) {
    setValues()
    for item in nameList{
        period1 += (item + "  ")
    }
    presentName.text = period1
    enterName.text = ""
}


@IBAction func start(sender: UIButton) {
    let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
    let entity = NSEntityDescription.insertNewObjectForEntityForName("Entity", inManagedObjectContext: context) as! Entity
    entity.period1Core = presentName.text
    do {
        try context.save()
        print("Item Saved")
    } catch _ {
        print("Saved Failed")
    }
    **Problem ->** let randomIndex = Int(arc4random_uniform(UInt32(nameList.count)))
    driverSelection.text! = nameList[randomIndex]
    print(randomIndex)

}

我試圖從數組名稱nameList隨機選擇一個元素,但是當我運行程序並打印randomIndex ,第一次按下按鈕后,它將始終返回數組中的最后一個元素。

如果我退出模擬器並再次運行它,當我按下按鈕時,它將返回fatal error Array Index is out of range 我的代碼有什么問題嗎,為什么我不能讓它從我的數組中隨機選擇一個元素?

您的setValues()函數始終用輸入的姓氏替換整個數組。 這就是為什么它似乎返回最后一個值。

您可能打算在其中使用nameList.append(enterName.text!)。

啟動時可能會發生崩潰,因為nameList尚未收到名稱,並且用參數值零調用arc4random_uniform

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM