如何获取数组/字典的片段并追加

时间:2015-11-08 22:01:32

标签: arrays swift dictionary append slice

我有一个从plist中提取的testWords数组/字典。我想随机地将它们洗牌,取一片2并将其附加到另一个单词数组。出于某种原因,我无法将testWords附加到单词数组中。我还需要随机shuffle的一个版本,选择,追加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 个答案:

答案 0 :(得分:0)

首先,prefix将返回一个ArraySlice,它不是一个数组。 其次,append方法向数组添加一个新元素。

所以在你的情况下你可以这样做:words.appendContentsOf(Array(chosenWords))appendContentsOfArray()将根据您的ArraySlice创建一个数组。