Я считаю, что с SwiftyJSON
получить JSON
объект типа массива в стрижа вы должны делать
datas["products"].array or datas["products"].arrayValue
Вы расширив класс массива, чтобы иметь метод воспроизведения в случайном порядке в первую очередь? Если нет, то вы могли бы сделать что-то вроде этого
extension CollectionType {
/// Return a copy of `self` with its elements shuffled
func shuffle() -> [Generator.Element] {
var list = Array(self)
list.shuffleInPlace()
return list
}
}
extension MutableCollectionType where Index == Int {
/// Shuffle the elements of `self` in-place.
mutating func shuffleInPlace() {
// empty and single-element collections don't shuffle
guard count >= 2 else { return }
for i in 0..<count - 1 {
let j = Int(arc4random_uniform(UInt32(count - i))) + i
guard i != j else { continue }
swap(&self[i], &self[j])
}
}
}
Source. Различия: If
заявление изменено на guard
.
Вы могли бы сделать что-то вроде этого
let shuffled = (datas["products"].array!).shuffle()
Или, если вы хорошо используете IOS 9 API, вы можете сделать следующее без каких-либо расширений:
let shuffled = GKRandomSource.sharedRandom().arrayByShufflingObjectsInArray(datas["products"].array!)
Где делает 'перетасовать() 'метод? Как это «не работает»? –