я иметь эту функцию для аутентификации игрока и он работал просто отлично до xcode8 бета 6:Невозможно присвоить значение типа '(UIViewController ?, NSError?) -> Void' to type '((UIViewController ?, Error?) -> Void)?'
func authenticateLocalPlayer()
{
print(#function)
// WillSignIn
self.delegate?.willSignIn?()
// The player authenticates in an asynchronous way, so we need a notification to inform when the authentication was completed successfully
// If the local player is already connected, return and notificate
if GameKitHelper.sharedGameKitHelper.localPlayer.isAuthenticated {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: Constants.LocalPlayerIsAuthenticated), object: nil)
return
}
// Calling the authentication view controller
self.localPlayer.authenticateHandler = {(viewController: UIViewController?, error: NSError?) -> Void in
self.addLastError(error: error)
if (viewController != nil)
{
self.addAuthenticationViewController(authenticationViewController: viewController!)
}
// If the localPlayer authenticated successfully notificate
else if (self.localPlayer.isAuthenticated == true)
{
self.gameCenterConnected = true
print("Local player ID: \(self.localPlayer.playerID)")
print("Local player Alias: \(self.localPlayer.alias)")
NotificationCenter.default.post(name: NSNotification.Name(rawValue: Constants.LocalPlayerIsAuthenticated), object: nil)
}
// If the localPlayer failed to authenticate
else
{
self.gameCenterConnected = false
}
if (error != nil)
{
// Handle error here
}
}
}
теперь я получаю эту ошибку «Невозможно присвоить значение типа„(UIViewController ?, NSError?) -> Пустота“ на тип '((UIViewController ?, Error?) -> Void)?' " в этой линии
self.localPlayer.authenticateHandler = {(viewController: UIViewController?, error: NSError?) -> Void in
self.addLastError(error: error)
if (viewController != nil)
и я понятия не имею, что происходит. Может ли кто-нибудь мне помочь?
Если вы не понимаете сообщение об ошибке, я настоятельно рекомендую повторить функцию с помощью завершения кода, чтобы получить правильную подпись. – vadian
У меня оно есть, я просто неправильно прочитал сообщение об ошибке, и я подумал, что это связано с этим https://github.com/apple/swift-evolution/blob/master/proposals/0103-make-noescape -default.md и попытался выяснить, как его решить, когда я увидел, что ответ был очевиден. – i6x86