输入“任何?”没有下标成员[重复]
Posted
技术标签:
【中文标题】输入“任何?”没有下标成员[重复]【英文标题】:Type 'Any?' has no subscript members [duplicate] 【发布时间】:2016-10-15 02:47:19 【问题描述】:我目前正在尝试学习 Swift。我正在使用 API 和 JSON 来解决这个练习问题。在尝试显示名称的打印语句中,它给了我错误:
“类型 'Any' 没有下标成员”。
谁能向我解释一下没有下标成员是什么意思,我可以做些什么来解决这个问题?我已经尝试查看 Stack Overflow 上的其他问题,但无论如何都无法解决这个问题。
override func viewDidLoad()
super.viewDidLoad()
let url = URL(string: "https://www.googleapis.com/blogger/v3/blogs/2399953/posts?key=AIzaSyDRiJilhWCEkMeEi40ONIPI3eDWukA0mQo")
let task = URLSession.shared.dataTask(with: url!) (data, response, error) in
if error != nil
print("Error in URL")
else
do
let jsonResults = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
let items = (jsonResults["items"]!)!
for item in items as! [AnyObject]
print(item["author"]?["displayName"]!)
catch
print("Error in JSON")
task.resume()
【问题讨论】:
看看:***.com/questions/39423367/… 【参考方案1】:将任何情况发送到AnyObject
是一件坏事。请具体说明您将获得什么,如果不是,您可以使用guard
语句来避免崩溃。
if let jsonResults = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as? Dictionary<String, AnyObject>
if let items = jsonResults["items"] as? Array<Dictionary<String, AnyObject>>
for item in items
guard let dictAuthorDetails = item["author"] else
continue
print(dictAuthorDetails["displayName"])
【讨论】:
以上是关于输入“任何?”没有下标成员[重复]的主要内容,如果未能解决你的问题,请参考以下文章
为firebase数据库创建用户对象时,类型“任何”没有下标成员[重复]