我是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
)时,出现错误在没有更多上下文的情况下,表达类型不明确
这是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)")
}
}
}
我在这里做错了什么?
最佳答案
第二个方法调用的问题是您忘了用viewController
方法提及第二个参数标签logIn
。
loginManager.logIn([ .publicProfile, .email ], viewController: viewController) { loginResult in
}
关于ios - 在没有更多上下文的情况下,表达式的类型是模棱两可的-在Facebook包装器中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40973214/