可选绑定(String:AnyObject)到[String]

时间:2014-12-15 17:09:14

标签: swift afnetworking conditional-binding

我有一个从AFNetworking检索到的JSON对象/字典,我想有条件地将密钥解包为一个字符串数组。

var person: [String : AnyObject] = ...

if let interests = person["interests"] as [String]{
   // Do something
}

我收到以下错误消息:(String : AnyObject) is not convertible to [String]。我认为我不能将person强制转换为[String : Any],因为它来自[String : AnyObject]框架中的AFNetworking。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:3)

更新您的Xcode。您使用的是旧版本。在Xcode 6.1之前,String不被视为对象类型:您必须改为使用NSString

if let interests = person["interests"] as? [NSString] {

Apple解决了这个问题,因此现在可以使用Xcode 6.1:

if let interests = person["interests"] as? [String] {

由于Swift正在迅速发展,因此建议您及时了解最新发布的Xcode版本,在撰写本文时为Xcode 6.1.1。