【发布时间】:2016-07-08 19:29:06
【问题描述】:
当我尝试编译这段代码时:
func lookupPlayers() {
print("Looking up \(match?.players.count)")
// Loading ID from players connected in the match
var idsArray = NSMutableArray()
if (match != nil) {
for players in match!.players {
if let player = players as? GKPlayer {
idsArray.addObject(player.playerID!)
}
}
}
GKPlayer.loadPlayersForIdentifiers(idsArray as [AnyObject] as [AnyObject], withCompletionHandler: { (players, error) -> Void in
if (error != nil) {
// Handle error here
// if we fail to retrieve player info return and end the match
print("Error retrieving player info: \(error.localizedDescription)")
self.matchStarted = false
self.delegate?.matchEnded?()
}
else {
// Get info from all players and start the match
self.playersDict = NSMutableDictionary(capacity: players.count)
for player1 in players {
if let player = player1 as? GKPlayer {
print("Found player: \(player.alias)")
self.playersDict.setObject(player, forKey: player.playerID)
}
}
self.playersDict.setObject(self.localPlayer, forKey: self.localPlayer.playerID)
self.matchStarted = true
self.delegate?.matchStarted?()
}
})
}
我收到此错误:
无法在此行中将类型“[AnyObject]”的值转换为预期的参数类型“[String]”:
GKPlayer.loadPlayersForIdentifiers(idsArray as [AnyObject] as [AnyObject], withCompletionHandler: { (players, error) -> Void in
我做错了什么?
【问题讨论】:
-
首先错误告诉你
[AnyObject]应该是[String]。其次,为什么会有as [AnyObject] as [AnyObject]。我认为第二个as [AnyObject]没用。这就好比说把这个对象当成一辆车,它被当成一辆车。没有意义。您是否尝试过简单地将[AnyObject]替换为[String]并删除该行中的重复项?
标签: swift