2017-02-17 1 views
-1

У меня есть вопрос. Как я могу это сделать, что мой массив выбирает случайным образом строку из списка?Выберите один из списка в String Array в Swift3

Я хочу выбрать случайный один из этих продуктов в списке?

Моей мысли была, я могу сделать это снова с массивом, но я получаю эту ошибку:

EXC_BAD_INSTRUCTION (code=EXC_i386_INVOP, subcode=0x0

Моего кода:

private func randomProduct() -> Int { 
let myArray1 = ["Nintendo Classic Mini NES", "Microsoft Office 2016 Home and Business", "Rubie's Deluxe Muscle Chest Batman Child", "Giro Dime", "Varta Powersports AGM 12V 12Ah 512014010A514", "Pohl-Boskamp Gelomyrtol Forte", "Panasonic ES-LV9N-S803", "Traxxas X-Maxx (77076-4)", "GoPro HERO 4", "Bose Lifestyle 650", "WMF Function 4 Kochtopf-Set 4-teilig", "Microsoft Surface Book", "Hewlett-Packard HP Color LaserJet Pro M252dw (B4A22A)", "Apple iPhone 7", "X-lite X-403GT Elegance", "Denon AVR-X3300W", "Hasbro Spiel des Lebens Banking", "Avent SCD 630/26", "Ray-Ban Aviator Metal RB3025"] 
return Int(myArray1[Int(arc4random_uniform(UInt32(myArray1.count)))])! 

Надеется, что вы можете мне помочь!

Thx много!

+3

Ни одна из строк в массиве не могут быть конвертированы в 'Int' ... – Hamish

+0

Чтобы добавить к этому, вы, вероятно, хотите, чтобы вернуть' String', и избавиться от 'Int' в строке' return'. – BallpointBen

ответ

0

Вы близко, но вы хотите использовать случайное число Int в качестве индекса, чтобы найти ваш String внутри массива. Затем вы возвращаете строку. Таким образом, просто сделать пару изменений:

private func randomProduct() -> String { // Return String, not Int 
    let myArray1 = ["Nintendo Classic Mini NES", "Microsoft Office 2016 Home and Business", "Rubie's Deluxe Muscle Chest Batman Child", "Giro Dime", "Varta Powersports AGM 12V 12Ah 512014010A514", "Pohl-Boskamp Gelomyrtol Forte", "Panasonic ES-LV9N-S803", "Traxxas X-Maxx (77076-4)", "GoPro HERO 4", "Bose Lifestyle 650", "WMF Function 4 Kochtopf-Set 4-teilig", "Microsoft Surface Book", "Hewlett-Packard HP Color LaserJet Pro M252dw (B4A22A)", "Apple iPhone 7", "X-lite X-403GT Elegance", "Denon AVR-X3300W", "Hasbro Spiel des Lebens Banking", "Avent SCD 630/26", "Ray-Ban Aviator Metal RB3025"] 
    return myArray1[Int(arc4random_uniform(UInt32(myArray1.count)))] // Remove the Int() 
} 
Смежные вопросы