我有一個GKGameModel
,其內部狀態存儲在Card
s的數組a
和Int
s到Card
s的數組映射的字典b
。 GameplayKit要求我必須在setGameModel:
中複製這個內部狀態。Swift字典的「Deep-copy」與map()?
以下代碼旨在just-copy數組和「深度複製」字典。 FWIK這應該是足夠的,因爲Card
本身永遠不會改變。
var a: [Card]
var b: [Int: [Card]]
func setGameModel(gameModel: GKGameModel) {
let otherGameModel = gameModel as! GameModel
a = otherGameModel.a
b = otherGameModel.b.map { (i: Int, cards: [Card]) in (i, cards) }
}
然而,這引起了線以下語法錯誤試圖「深拷貝」:
不能指定類型的值「[(智力,[卡])」到 '[Int,[Card]]'的值。
我在做什麼錯?
我斯威夫特的有點生疏這將使用其他括號:'[我:詮釋,卡:[卡]]在[我,卡]'。語法可能不正確,但問題是沿着這條線...... – LearnCocos2D