Как взять кусочек массива / словаря и добавить

У меня есть массив / словарь testWords, который взят из списка. Я хочу случайным образом перемешать их, взять часть 2 и добавить это к другому массиву слов. Почему-то я не могу добавить testWords в массив слов. Мне также нужна версия случайного перемешивания, выберите, добавьте для iOS8.

var words: [NSArray]

var testWords: [NSArray]!

let fileName = "level\(levelNumber).plist"
let levelPath = "\(NSBundle.mainBundle().resourcePath!)/\(fileName)"
let levelDictionary: NSDictionary? = NSDictionary(contentsOfFile: levelPath)
testWords = levelDictionary!["words"] as! [NSArray]

let shuffledTestWords = GKRandomSource.sharedRandom().arrayByShufflingObjectsInArray(testWords)
         print("testWords after shuffling is \(shuffledTestWords)")

let chosenWords = Array(shuffledTestWords.prefix(2))
words.appendContentsOf(Array(chosenWords)) 

В консоли массив выглядит так:

testWords after shuffling is [(
"drinc drink",
drink,
"Which one is right?",
"",
""
), (
"bank banc",
bank,
"Spell this word ending in  ' nk '",
"",
""
), (
"bunk bunc",
bunk,
"Spell this word ending in  ' nk '",
"",
""
)] 

Любые идеи о том, как добавить такой массив высоко ценится! Сейчас ответили.

1 ответ

Во-первых, префикс вернет ArraySlice, который не является массивом. Во-вторых append метод добавить один новый элемент в массив.

Так что в вашем случае вы могли бы сделать: words.appendContentsOf(Array(chosenWords)), appendContentsOf и Array() создаст массив из вашего ArraySlice,

Другие вопросы по тегам