2016-10-26 123 views
0

我現在試圖按照facebook的完整指南,但是當我嘗試構建時,我總是收到錯誤。Swift 3 Facebook登錄

我得到的錯誤是type of expression is ambigous without more context在這條線LoginManager.logIn([.PublicProfile], viewController: self) { loginResult in

我已經

我已經開始與投入莢

pod 'FacebookCore' 
pod 'FacebookLogin' 
pod 'FacebookShare' 

,然後運行在這之後pod install

我已經將它導入到我的viewController中

import FacebookCore 
import FacebookLogin 

我已經加入一個UIButton到viewDidLoad

let myLoginButton = UIButton(type: .custom) 
myLoginButton.backgroundColor = UIColor.darkGray 
myLoginButton.frame = CGRect(x: 0, y: 0, width: 180, height: 40); 
myLoginButton.center = view.center; 
myLoginButton.setTitle("My Login Button", for: .normal) 

然後我添加了以下功能到ViewController

@objc func loginButtonClicked() { 
    let loginManager = LoginManager() 
    LoginManager.logIn([.PublicProfile], 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!") 
     } 
    } 
} 

回答

0

請試試這個它工作正常在目標C.

https://stackoverflow.com/a/40089906/3901620

初始化ViewDidLoad

let loginManager = LoginManager() 

在按鈕單擊事件上使用此實例。

func loginButtonClicked() { 
    loginManager.logIn([.PublicProfile], 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!") 
     } 
    } 
} 
0

您沒有使用您創建的實例變量來調用「logIn」方法。而是嘗試在LoginManager類上調用「logIn」。

更換

let loginManager = LoginManager() 
LoginManager.logIn([.PublicProfile], viewController: self) { loginResult in 

隨着

let loginManager = LoginManager() 
loginManager.logIn([.PublicProfile], viewController: self) { loginResult in 
+0

我什麼也沒做改變 –

+0

替換 「.PublicProfile」 與 「.publicProfile」 –