Я задал массив массивов (2D массив):
var multArray = Array<Array<String>>()
Я провел не до конца понятную мне процедуру его "инициализации", без которой выдается ошибка:
for i in 0..<firstBlockStruct.count {
multArray.append(Array(count:0, repeatedValue:String()))
}
В нем хранятся слова и фразы. Теперь мне нужно выбрать случайную фразу, типа:
multArray[i][j], где j это число от 0 до числа, равного количеству элементов в массиве.
Я пытался так:
multArray[i][Int(arc4random_uniform(UInt8(multArray[i].count)))]
multArray[i][Int(arc4random_uniform(multArray[i].count))]
multArray[i][Int(random(multArray[i].count))]
multArray[i][random(multArray[i].count)]
Во всех этих случаях какие-то придирки в стиле "Это Int и из него не получится UInt32" или "Это строка, а не Int" и побороть мне их не удается. При этом если в качестве содержимого вторых скобок вставить просто цифру ноль, то все ок, но берется первый символ:
multArray[i][Int(arc4random_uniform(0))]
Так как правильно скормить в качестве аргумента рендомайзеру параметр количества элементов во втором измерении массова? (и тот ли рендомайзер я юзаю?)
(а может я зря создал массив массивов и тут можно как-то сделать паскаль-стайл array[1..10][1..10][1..10] ?)