2016-05-09 9 views
0

最新のXCodeを使用して、私はこのエラーを取得しています:logInWithReadPermissions(_:ハンドラが:)」推奨されません:使用logInWithReadPermissions:fromViewController:ハンドラ:代わりに

'logInWithReadPermissions(_:handler:)' is deprecated: 
use logInWithReadPermissions:fromViewController:handler: instead' 

どのように交互に再フォーマット私のコードだろう?ここにはそれが含まれている関数全体があります:

@IBAction func fbBtnPressed(sender: UIButton!) { 
     let facebookLogin = FBSDKLoginManager() 

     facebookLogin.logInWithReadPermissions(["email"]) { 
      (facebookResult: FBSDKLoginManagerLoginResult!,facebookError: NSError!) in 
      print("Facebook login failed. Error \(facebookError)") 
     } 
} 
+0

だけで、 'メソッドでself'を渡します – cheeseRoot

答えて

0

誰もがこのポストに潜んでいる場合は、ここに新しいコードです:あなたfbBtnPressed機能は、ビューcontrolleクラスである場合

@IBAction func fbBtnPressed(sender: UIButton!) { 
     let facebookLogin = FBSDKLoginManager() 

     facebookLogin.logInWithReadPermissions(["email"],  fromViewController: self) { (facebookResult:  FBSDKLoginManagerLoginResult!, facebookError: NSError!) -> Void in 
      print("Facebook login failed. Error \(facebookError)") 
     } 
    } 
0

は、ちょうどfromViewControllerパラメータにselfを渡します。

facebookLogin.logInWithReadPermissions(["email"], fromViewController: self) { ... } 

ノートしかし、それはあなたの関数名がコンパクトである上、読みやすさを優先順位付けスウィフトとOBJの-Cに奨励しています。たとえば、ボタンハンドラの名前をfacebookLoginButtonPressedとします。それはもっと長くても読みやすい。

1

のXcode 8.2ベータ(8C30a):あなたの `@ IBAction`が` UIViewController`から呼び出された場合

fbLoginManager.logIn(withReadPermissions:["email"], from: self, handler: { 

     (result, error) -> Void in 

     if (error == nil){ 
      let fbloginresult : FBSDKLoginManagerLoginResult? = result 

      if(fbloginresult?.isCancelled)! { 
       //Show Cancel alert 
      } else if(fbloginresult?.grantedPermissions.contains("email"))! { 
       //self.returnUserData() 
       //fbLoginManager.logOut() 
      } 
     } 
    })