Type #39;Any#39; Has no Subscript Members in xcode 8 Swift 3(类型Any在xcode 8 Swift 3中没有下标成员)
问题描述
My App is supposed to go to a specific location to pull down the website it needs to load. In 2.3 it worked like a charm, but since I've updated xcode (which I don't have a ton of experience in) it is giving me the error "type 'Any' has no subscript members" and highlighting the "json" right before line three
...Retriever = json["WEB"]...
this is the code related to it.
let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments)
if let Retriever = json["WEB"] as? [[String: AnyObject]] {
for website in Retriever {
if let name = website["URL"] as? String {
self.loadAddressURL(name)
I feel like I am missing something small. If there is a better way to do this, I would love suggestions. The URL returns this JSON
{
"WEB" : [
{
"URL" : "http://www.google.com"
}
]
}
but I would love it if I could simplify it to just
{"URL":"http://www.google.com"}
Try this:
let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String:AnyObject]
Safe way:
do {
if let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as? [String:Any] {
print(json)
}
} catch let err{
print(err.localizedDescription)
}
You have to cast type Any
to Swift dictionary type [String:AnyObject]
.
Edit: Swift 3
In swift 3 the purpose of AnyObject
is more clarified. So more favourable Swift Dictionary type will be [String:Any]
.
Any
is an alias for any data type.
AnyObject
is an alias for any data type derived from a class.
For more info visit: https://craiggrummitt.com/2016/09/16/any-vs-anyobject-vs-nsobject-in-swift-3/
这篇关于类型'Any'在xcode 8 Swift 3中没有下标成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:类型'Any'在xcode 8 Swift 3中没有下标成员


基础教程推荐
- Android:对话框关闭而不调用关闭 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01