2016-12-05 7 views
2

私はSwiftとiOSの新機能です。ここで面白いことがあります。より多くの文脈がなくても表現のタイプが曖昧です - Facebookラッパーで

私のViewController私はこのコードを使用しています。私はエラーを得た私は、このようなLoginServiceとして、他のクラスでそれを入れていた場合

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)") 
    } 
} 

式のタイプは、より多くの文脈ここ

せずに曖昧であるLoginServiceクラスのfunkctionです

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)") 
      } 
     } 
    } 

ワロンここに?

+1

を? –

+0

行loginManager.logIn – pmb

答えて

2

2番目のメソッド呼び出しでの問題は、logInメソッドで2番目のパラメータラベルviewControllerを忘れたことです。

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

} 
+0

hellはい。ありがとう。 – pmb

+0

@pmb Welcome mate :) –

3

このように記述する必要があります。それは私の作品..スウィフト4とXcodeバージョンVersion 9.2

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

} 
0

が、これは動作します:

エラーを示しているライン
loginManager.logIn(readPermissions: [ .publicProfile, .email ], viewController: self, completion: { (loginResult) in 

}) 
関連する問題