Bitte schließen Sie nicht wegen des Duplikats von "Mehrdeutige Verwendung von ...". Trotz intensiver Recherche konnte ich keine ähnlichen Threads finden, die mein Problem lösen.Swift 3/Wie zu lösen: "Mehrdeutige Verwendung von 'authorize (_: completion :)'"
Ich bin ein Projekt Swift 3 Aktualisierung und bin an einem Compiler-Fehler fest:
Ambiguous use of 'authorize(_:completion:)'
Code:
func connectToInstagram() {
let auth: NSMutableDictionary = ["client_id": INSTAGRAM_CLIENT_ID,
SimpleAuthRedirectURIKey: INSTAGRAM_REDIRECT_URI]
SimpleAuth.configuration()["instagram"] = auth
SimpleAuth.authorize("instagram") { (anyObject, error) in // error here
if anyObject != nil {...
SimpleAuth ist ein Rahmen Social Media-Authentifizierung in Objective geschrieben zu handhaben C.
SimpleAuth:
open class SimpleAuth : NSObject {
open class func authorize(_ provider: String!, completion: SimpleAuth.SimpleAuthRequestHandler!)
SimpleAuthRequestHandler:
public typealias SimpleAuthRequestHandler = (Any?, Error?) -> Swift.Void
public let SimpleAuthPresentInterfaceBlockKey: String
public let SimpleAuthDismissInterfaceBlockKey: String
Ich habe versucht, die Linie zu ändern:
_ = SimpleAuth.authorize("instagram") { (anyObject: Any?, error: Error?) in
_ = SimpleAuth.authorize("instagram", completion: { (anyObject: Any?, error: Error?) in
Aber wie erwartet, es hat sich nicht verändert alles . Was vermisse ich? Hilfe wird sehr geschätzt.
Build Log:
xy/InstagramVC.swift:409:9: error: ambiguous use of 'authorize(_:completion:)'
SimpleAuth.authorize("instagram") { (any: Any?, error: Error?) -> Swift.Void in
^
SimpleAuth.SimpleAuth:24:21: note: found this candidate
open class func authorize(_ provider: String!, completion: SimpleAuth.SimpleAuthRequestHandler!)
^
SimpleAuth.SimpleAuth:34:21: note: found this candidate
open class func authorize(_ provider: String!, options: [AnyHashable : Any]! = [:], completion: SimpleAuth.SimpleAuthRequestHandler!)
Versuchen Sie, Build-Protokoll zu überprüfen, oder einfach nur von der Befehlszeile aus erstellen. Soweit ich mich erinnere Compiler kann Ihnen die Liste der Täter, die die Ambiguität produzieren. – courteouselk
@AntonBronnikov Ich habe die Frage mit den Build-Log-Informationen bearbeitet –
Korrigieren Sie mich, wenn ich falsch liege, aber es gibt eine Mehrdeutigkeit b/w diese beiden Methoden (die mit Optionen Optionen hat einen Standardwert, so kann es reduziert werden zu genau der gleichen Signatur wie die andere).Versuchen Sie, den Standardwert zu entfernen (dieses Bit: '= [:]'), – courteouselk