我是 Swift 和 iOS 的新手,这里发生了一些有趣的事情。
在我的 ViewController
中,我正在使用这段代码并且它运行良好。
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
我得到了一个错误
Type of expression is ambiguous without more context
这是 LoginService 类的函数
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)")
}
}
}
我这里做错了什么?
最佳答案
你应该这样写。它对我有用..
loginManager.logIn(readPermissions: [.publicProfile, .email], viewController: self) { (loginResult) in
}
关于ios - 在没有更多上下文的情况下,表达式类型不明确 - 在 Facebook 包装器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40973214/