Swift - [NSObject:AnyObject]!'不是'Dictionary <string,anyobject =“”> </string,>的子类型

时间:2015-02-27 13:32:04

标签: ios swift

我收到此错误消息

[NSObject : AnyObject]!' is not a subtype of 'Dictionary<String, AnyObject>

我的代码

self.client.getAccessToken(code, success: { (accessTokenData:Dictionary<String, AnyObject>) -> Void in // error here
                    var accessToken = accessTokenData["access_token"]
                    self.requestMeWithToken(accessToken)
                    }, failure: { (error:NSError!) -> Void in
                    println("Quering accessToken failed \(error)")
                })

请建议。

2 个答案:

答案 0 :(得分:1)

您可以在成功完成时完全省略类型规范。你可能想要这样的东西:

self.client.getAccessToken(code, success: { (accessTokenData) -> Void in // error here
    if let dict = accessTokenData as? Dictionary<String, AnyObject> {
        let accessToken = dict["access_token"]
        self.requestMeWithToken(accessToken)
    }
}, failure: { (error:NSError!) -> Void in
    println("Quering accessToken failed \(error)")
})

这只有在accessTokenData可以成功转换为[String:AnyObject]字典时才有效。

答案 1 :(得分:0)

从错误消息中,您应该将Dictionary<String, AnyObject>更改为[NSObject : AnyObject]

相关问题