我有一个GKGameModel
将其内部状态存储在 s 数组a
中Card
的一个字典和一个从sb
映射到s 数组的字典。GameplayKit 要求我必须将这个内部状态复制到.Int
Card
setGameModel:
以下代码旨在仅复制数组并“深度复制”字典。FWIK 这应该就足够了,因为Card
s 本身永远不会改变。
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])]”类型的值分配给“[Int, [Card]]”类型的值。
我究竟做错了什么?