2
使用的GameKit多人遊戲(EasyGameCenter)之間unsafeBitCast:https://github.com/DaRkD0G/Easy-Game-Center-Swift致命錯誤:無法找到這裏類型不同尺寸(使用的GameKit)
在兩名球員連接我得到一個崩潰在這條線
let playerIDs = match.players.map { $0 .playerID } as! [String]
有了這個控制檯
fatal error: can't unsafeBitCast between types of different sizes
任何想法?下面是簡單的參考全功能:
@available(iOS 8.0, *)
private func lookupPlayers() {
guard let match = EGC.sharedInstance.match else {
EGC.printLogEGC("No Match")
return
}
let playerIDs = match.players.map { $0 .playerID } as! [String]
/* Load an array of player */
GKPlayer.loadPlayersForIdentifiers(playerIDs) {
(players, error) in
guard error == nil else {
EGC.printLogEGC("Error retrieving player info: \(error!.localizedDescription)")
EGC.disconnectMatch()
return
}
guard let players = players else {
EGC.printLogEGC("Error retrieving players; returned nil")
return
}
if EGC.debugMode {
for player in players {
EGC.printLogEGC("Found player: \(player.alias)")
}
}
if let arrayPlayers = players as [GKPlayer]? { self.playersInMatch = Set(arrayPlayers) }
GKMatchmaker.sharedMatchmaker().finishMatchmakingForMatch(match)
(Static.delegate as? EGCDelegate)?.EGCMatchStarted?()
}
}
如果將該行分成兩行,該怎麼辦?將地圖的值存儲到一行中的臨時變量,然後將其轉換爲下一行的「[String]」。你仍然看到同樣的問題? –
不知道我會怎麼做,新的迅速。這段代碼是從EasyGameCenter github – Jenna25
'let tempPlayerIDs = match.players.map {$ 0 .playerID}',然後是'let playerIDs = tempPlayerIDs as! [String]' –