kometen kometen - 1 year ago 198
Swift Question

Unable to compile AWS CustomIdentityProvider on xcode 8 beta 6

I am using Amazon Cognito and Facebook login in an ios app. Up until beta 5 this code from this SO thread worked:

class CustomIdentityProvider: NSObject, AWSIdentityProviderManager {
var tokens: [NSString: NSString]?

init(tokens: [NSString: NSString]) {
self.tokens = tokens

@objc func logins() -> AWSTask<NSDictionary> {
return AWSTask(result: tokens) // Compile error in beta 6

In beta 6 I get this compile error:

Cannot convert value of type '[NSString:NSString]?' to expected argument type '_?'

When I change the line to

return AWSTask(result: tokens! as [AnyObject: AnyObject])

I get the error

Type 'AnyObject' does not conform to protocol 'Hashable'

This is swift ver. 3.

Answer Source

Cast to NSDictionary instead of a Swift Dictionary:

return AWSTask(result: tokens! as NSDictionary)
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download