2016-12-05 3 views
2

Ich bin neu auf Swift und iOS und es ist etwas Interessantes passiert hier.Art des Ausdrucks ist mehrdeutig ohne mehr Kontext - in Facebook wrapper

In meinem ViewController benutze ich diesen Code und es funktioniert super.

let loginManager = LoginManager() 


loginManager.logIn([ .publicProfile, .email ], viewController: self) { loginResult in 
    switch loginResult { 
    case .failed(let error): 
     print(error) 
    case .cancelled: 
     print("User cancelled login.") 
    case .success(let grantedPermissions, let declinedPermissions, let accessToken): 
     print("Logged in!\(accessToken)") 
    } 
} 

Als ich es in der anderen Klasse bin setzen wie LoginService bekam ich einen Fehler

Art des Ausdrucks ist nicht eindeutig, ohne mehr Kontext

Hier ist die funkction auf LoginService Klasse

func doFaceBookLogin(viewController: UIViewController?) { 
     let loginManager = LoginManager() 

     loginManager.logIn([ .publicProfile, .email ], viewController) { loginResult in 
      switch loginResult { 
      case .failed(let error): 
       print(error) 
      case .cancelled: 
       print("User cancelled login.") 
      case .success(let grantedPermissions, let declinedPermissions, let accessToken): 
       print("Logged in!\(accessToken)") 
      } 
     } 
    } 

Was ich tat wron g hier?

+1

, welche Linie die Fehler anzeigt? –

+0

in der Zeile loginManager.logIn – pmb

Antwort

2

Das Problem mit Ihrem zweiten Methodenaufruf ist, dass Sie vergessen haben, das zweite Parameteretikett viewController mit Ihrer logIn Methode zu erwähnen.

loginManager.logIn([ .publicProfile, .email ], viewController: viewController) { loginResult in 

} 
+0

Hölle ja. Vielen Dank. – pmb

+0

@pmb Willkommen Kumpel :) –

3

sollten Sie es so schreiben. Es funktioniert für mich ..

loginManager.logIn(readPermissions: [.publicProfile, .email], viewController: self) { (loginResult) in 

} 
0

Für Swift 4 und xCode Version Version 9.2 dies funktionieren wird:

loginManager.logIn(readPermissions: [ .publicProfile, .email ], viewController: self, completion: { (loginResult) in 

}) 
Verwandte Themen