I'm using the following code to add a facebook login to a UIButton action:
func facebookButtonClicked(sender: UIButton) {
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")
}
}
}
Xcode is throwing the following error:
Type of expression is ambiguous without more context
for the [.PublicProfile]
part.
Any ideas what I'm doing wrong here?
The final solution is this one:
let loginManager=LoginManager()
loginManager.logIn(readPermissions: [ReadPermission.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")
}
}
Facebook hasn't updated its own codes' examples...
Try this for latest SDK
func facebookButtonClicked(sender: UIButton) {
let loginManager = LoginManager()
loginManager.logIn(readPermissions: [.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")
}
}
}
You should add readPermissons: before the first parameter:
loginManager.logIn(readPermissions: [ .publicProfile], ...
i recently resolved this error.
replace .publicProfile with ReadPermission.publicProfile
this should fix the problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With