2016-10-26 3 views
0

많은 가이드가있는 사용자 정의 loginButton을 만들려고합니다. 그러나, 그들 중 누구도 스위프트 3을 위해 업데이트되지 않았기 때문에, 나는 스스로 함수를 만들려고 노력했습니다. 그러나 나는 오류가 계속 발생합니다.Custom Facebook loginButton functions Swift 3

내가

@IBAction func LoginPressed(_ sender: AnyObject) { 
    let fbLoginManager : LoginManager = LoginManager() 
    fbLoginManager.logIn(["public_profile", "email", "user_friends"], viewController: self, completion: { (result, error) -> Void in 

     if (error == nil){ 
      let fbloginresult : FBSDKLoginManagerLoginResult = result! 
      if fbloginresult.grantedPermissions != nil { 
       if(fbloginresult.grantedPermissions.contains("email")) 
       { 
        self.getFBUserData() 
        fbLoginManager.logOut() 
       } 
      } 
     } 

    }) 

} 

내가 Cannot convert value of type (_, _, _) -> Void to expected argument type (HTTPURLResponse?, GraphRequestResult<GraphRequest> -> Void)

func getFBUserData(){ 
    if((AccessToken.current) != nil){ 
     GraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).start({ (connection, result, error) -> Void in 

      if (error == nil){ 
       //everything works print the user data 
       print(result) 
      } 
     }) 
    } 
} 
+0

[Facebook 로그인 iOS 10 - Swift 3] (http://ashishkakkad.com/2015/05/facebook-login-swift-language-ios/) –

답변

1

첫 번째 문제에 대한 해결책을 얻고 두 번째 ambiguous reference to member login(_:completion:)을 다음되지 않습니다지고있어 첫 번째 :에 completion: 단어를 추가 할 필요가 함수의 끝. 귀하의 기능은 다음과 같아야합니다

fbLoginManager.logIn(["public_profile", "email", "user_friends"], viewController: self) { result in 
    // handle the result 
} 

당신이 전화의 끝에서 추가 )을 삭제해야합니다.

두 번째 문제는 두 부분으로 나뉩니다. 완료 핸들러 구문을 업데이트해야하고 매개 변수 중 하나가 제거되었습니다. 함수는 다음과 같아야합니다.

GraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).start { (urlResponse, requestResult) in  
    if (error == nil) { 
     //everything works print the user data 
     print(result) 
    } 
} 

또한이 tutorial은 매우 유망한 것 같습니다.

또한 here은 github의 SDK 링크이며 여기서는 Samples 프로젝트에 대한 예제를 볼 수 있습니다.

+0

은 여전히 ​​회원 로그인에 대한 모호한 참조를 반환합니다 _ : completion :)'두 번째 작품은 매력처럼 –

+0

그들은 스위프트 3에 대한 매개 변수 목록도 변경 한 것 같습니다. 매개 변수 목록에 대한 오류를 제거해보십시오. 답변을 업데이트했습니다. – dirtydanee

+0

가 작동하지 않습니다. 내게 성명에서 아무런 완료의 동일한 오류 원인을 계속 제공합니다. –