Référence ambiguë à membre Swift 3
Je suis la migration de mon projet de 2.3 Swift Swift 3. Et avoir de la difficulté comme prévu.
Ici est une fonction qui est utilisée pour l'authentification OAuth, à l'aide de OAuthSwift. J'ai essayé de convertir
class func OAuthSwiftAuthorization(inViewController viewController: UIViewController, withOAuthInfo info:FitnessTracker, successHandler:@escaping MyOAuthNewSuccessHandler, failure: @escaping ((_ error: NSError) -> Void)) {
let oauthswift = OAuth2Swift(
consumerKey: info.consumerKey,
consumerSecret: info.consumerSecret,
authorizeUrl: info.authorizeUrl,
accessTokenUrl: info.accessTokenUrl,
responseType: info.responseType
)
oauthswift.authorizeURLHandler = SafariURLHandler(viewController: viewController, oauthSwift: oauthswift)
oauthswift.accessTokenBasicAuthentification = true
oauthswift.allowMissingStateCheck = true
oauthswift.authorize(withCallbackURL: URL(string: info.callBackUrl)!, scope: info.scope, state: info.state, success: { (credential, response, parameters) in
successHandler(credential, response, parameters)
}) { (error) in
failure(error: error)
print(error.localizedDescription)
}
}
Mais j'obtiens une erreur à la
oauthswift.authorize(withCallbackURL: URL(string: info.callBackUrl)!, scope: info.scope, state: info.state, success: { (credential, response, parameters) in
États d'erreur
Référence ambiguë à un membre " autoriser(withCallbackURL:portée:état:paramètres:les en-têtes:réussite:echec:)'
Voici le code de travail de Swift 2.
oauthswift.authorizeWithCallbackURL(
URL(string: info.callBackUrl)!,
scope: info.scope, state:info.state,
success: { credential, response, parameters in
successHandler(credientials: credential, response: response, params: parameters)
},
failure: { error in
failure(error: error)
print(error.localizedDescription)
}
)
Mise à JOUR:
D'erreur n'apparaît pas unitil j'type de succès et faliure handelrs. Cela est conforme amende:
oauthswift.authorize(withCallbackURL: URL(string: info.callBackUrl)!, scope: info.scope, state: info.state, success: { (credential, response, parameters) in
//successHandler(credential, response, parameters)
}) { (erorr) in
//failure(error: error
}
Donc Merci de me guider Merci.
OriginalL'auteur Umair Afzal | 2017-01-31
Vous devez vous connecter pour publier un commentaire.
Je pense que le problème est causé par certaines des lacunes de Swift est l'inférence de type en combinaison avec des fermetures.
Vous pouvez essayer l'une des opérations suivantes:
N'utilisent pas de fuite fermetures, par exemple
ou de fournir un type explicite de l'erreur, par exemple
C'est un défaut, voir ici: lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160704/...
OriginalL'auteur Andreas Oetjen
Pour référence:
Ce type d'erreur s'affiche lorsqu'il n'y a plus d'une variable/méthode avec le même nom, est-ce que votre
oauthswift
a plus qu'une "chose" appelée "autoriser"? comme une autre méthode?Mon erreur est que j'ai déclaré:
et dans
J'ai eu la même erreur, en changeant le nom de la variable dans
localFileManager
fixe.OriginalL'auteur Kappe