2016-12-21 3 views
2

Я пытаюсь получить случайную строку из массива «firstArray» и напечатать ее в «ярлыке» UILabel. Кажется, я не понимаю, и я получаю ошибки. Ваша помощь приветствуется. Я попытался выполнить поиск, но не смог найти какие-либо современные учебники/методы.Получить случайную строку из массива

import UIKit 

class ViewController: UIViewController { 
    @IBOutlet var label: UILabel! 

    @IBAction func random(_ sender: Any) { 
     let firstArray = [ "hi" , "bye" , "hello"] 
    } 
+1

Обновить свой вопрос с кодом вызывает ошибку и отправить сообщение об ошибке. – rmaddy

+0

Ваш вопрос не очень плохой вопрос, поэтому я не буду его понижать. Но вам действительно нужно опубликовать больше информации, например, как реализовать «случайную» функцию. (потому что я не вижу случайного алгоритма. из вашего кода вы только что определили массив строк). –

+0

анализирует код перед публикацией для правильных основных открывающих и закрывающих скобок. – vaibhav

ответ

3

Я предпочел бы, используя arc4random(), этот код будет забрать случайные элементы из массива:

let firstArray = ["hi", "bye", "hello"] 
    let randomItem = Int(arc4random() % UInt32(firstArray.count)) 
    myLabel.text = "\(firstArray[randomItem])" 
+1

Это не делает попытку получить случайное значение из массива и назначает случайный «Int» 'на метку. – rmaddy

+0

yep, mistyped error, я забыл firstArray [] перед \ (randomItem) :) – cubycode

+1

Пожалуйста, не отправляйте ответы только на код. Попытайтесь объяснить, как ваш код решает проблему OP, и помогите другим, кто менее опытен, понять ваше решение. –

1

Вы должны генерировать случайные числа в диапазоне от 0 до Вашего счёта массива, а затем установить текст метки к соответствующему элементу массива, например:

@IBAction func random(_ sender: UIButton) { 
    let firstArray = [ "hi" , "bye" , "hello"] 
    var randomNumber = Int(arc4random_uniform(UInt32(firstArray.count))) 
    randLabel.text = firstArray[randomNumber] 
} 

это thread полезно понять случайное логика.