Когда я пытаюсь скомпилировать этот код:Невозможно преобразовать значение типа '[AnyObject] ожидаемый тип аргумента' [Строка]
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?()
}
})
}
Я получаю эту ошибку:
Cannot convert value of type '[AnyObject]' to expected argument type '[String]' in this line:
GKPlayer.loadPlayersForIdentifiers(idsArray as [AnyObject] as [AnyObject], withCompletionHandler: { (players, error) -> Void in
Что я делаю неправильно?
Прежде всего ошибка говорит о том, что '[AnyObject]' должен быть '[String]'. Во-вторых, почему существует 'как [AnyObject] как [AnyObject]'. Я думаю, что второй 'as [AnyObject]' бесполезен. Это было бы похоже на то, что мы рассматриваем этот объект как автомобиль, который рассматривается как автомобиль. Не имеет смысла. Вы пробовали просто заменить '[AnyObject]' на '[String]' и удалить дубликат в этой строке? – Lawrence413