Как говорит Карпсен, функция shuffled () есть только в Swift ≤ 4.2.В более ранних версиях языка вы должны написать свой собственный.
Вот пример реализации.Я назвал свой scrambled()
, поэтому он будет работать в любой версии Swift, включая 4.2:
extension Array {
func scrambled () -> [Element] {
var source = self
var dest = Array<Element>()
for _ in 1...self.count {
let index = Int(arc4random_uniform(UInt32(source.count)))
dest.append(source.remove(at: index))
}
return dest
}
}
. Вы можете шифровать весь набор смайликов, но мне кажется, что вам лучше создатьмассив случайных эмодзи при первом заполнении источника данных вашего табличного представления.Для этого вы можете использовать функцию randomEmoji()
:
func randomEmoji() -> String {
let range = 0x1F300...0x1F3F0
let index = Int(arc4random_uniform(UInt32(range.count)))
let ord = range.lowerBound + index
guard let scalar = UnicodeScalar(ord) else { return "❓" }
return String(scalar)
}
Таким образом, вы создадите структуру для хранения всех данных для ячейки табличного представления, а затем заполните каждую структуру вызовом * 1011.*.