我正在开展一个项目。该项目使用AFNetworking 2.0
从频道获取YouTube GDATA并将其加载到UITableView中。我在Jared Davidson看到了一个教程,它向我展示了如何做到这一点。这很棒,但问题出在Objective - C
,我的项目在Swift
。我目前正在尝试将一些代码转换为swift,但我偶然发现了一个问题。
我尝试转换它,
self.post = self.posts[@"data"][@"items"];
快速到此,
self.post = self.posts["data"]["items"] as NSMutableDictionary
但是我得到一个错误,说......
' AnyObject&#39?;没有名为'下标'
的成员
我尝试了很多方法来修复它,但我仍然不知道该怎么做。任何帮助将不胜感激
由于 !
答案 0 :(得分:1)
访问字典会返回一个可选字典,因为密钥可能不存在。这就是编译器解析它的方式:
致电posts
。返回NSDictionary
。
在返回的对象上调用subscript
,参数为" data。"返回可选的AnyObject
。
在返回的subscript
上调用AnyObject?
,其参数为'数据'。这会导致错误,因为您需要打开它。
您需要将其更改为:
self.post = self.posts["data"]!["items"] as NSMutableDictionary
现在发生了这样的事情:
致电posts
。返回NSDictionary
。
在返回的对象上调用subscript
,参数为" data。"返回可选的AnyObject
。
展开可选项。返回AnyObject
(非可选)。
在返回的subscript
上调用AnyObject
,其参数为'数据'。
将其投放到NSMutableDictionary
。我相信一个演员也会解开它。
使用结果调用setPost
。