当前位置: 首页 > 面试题库 >

类型“任何”没有下标成员

戚繁
2023-03-14
问题内容
let employerName = snapshot.value! ["employerName"] as! String
let employerImage = snapshot.value! ["employerImage"] as! String
let uid = snapshot.value! ["uid"] as! String

我查看了以前的文章,但似乎找不到解决此问题的方法。所有三行代码都给出“类型’Any’没有下标成员”错误。对此还很陌生,因此不胜感激。


问题答案:

snapshot.value的类型为Any。下标是一种特殊的函数,它使用将值括在大括号中的语法。此下标功能由实现Dictionary

因此,这里发生的是,作为开发人员的YOU知道这snapshot.value是一个Dictionary,但是编译器却没有。它不会让您调用该subscript函数,因为您试图在type的值上调用它Any并且Any未实现subscript。为此,您必须告诉编译器您snapshot.value实际上是一个Dictionary。此外,还Dictionary可以让您将下标函数Dictionary键的类型无关。因此,您需要告诉它您有一个Dictionary带有String(AKA
[String: Any])的键。会比这还要进一步,你的情况,你似乎知道,都在你的价值观DictionaryString一样,所以代替铸造每个值,你就下标后String使用as! String,如果只是告诉您同时Dictionary 具有两种String类型的键和值(AKA [String: String]),那么您将可以通过下标访问这些值,并且编译器将知道这些值String也是!

guard let snapshotDict = snapshot.value as? [String: String] else {
    // Do something to handle the error 
    // if your snapshot.value isn't the type you thought it was going to be. 
}

let employerName = snapshotDict["employerName"]
let employerImage = snapshotDict["employerImage"]
let uid = snapshotDict["fid"]

在那里,您拥有了!



 类似资料:
  • 问题内容: 我收到此错误:尝试运行此代码块时,“类型’Any’没有下标成员”: 我一直在寻找答案,但找不到用FireBase解决此问题的答案。我该如何解决这个错误? 问题答案: 具有类型,因此您需要将其强制转换为基础类型,然后才能对其进行下标。由于is ,请使用可选的强制类型转换来建立类型,然后您可以访问字典中的值: 或者,您也可以单线执行此操作:

  • 问题内容: 我想从个人资料字典中获取地址,但出现错误“输入任何类型?没有下标成员” 我该如何解决并获取地址?非常感谢。 问题答案: 当您使用下标配置文件时,您将获得一个实例。您选择使用适合同一数组中的各种类型已导致发生类型擦除。您需要将结果转换回其实型,以便它知道实例代表。然后,您可以对其进行下标: 但是,这非常笨拙,并且一开始就使用Dictionary并不是一个非常合适的情况。 在这种情况下,如

  • 问题内容: 这是我在Swift中的代码: 我刚刚更新到Xcode 8 / Swift 3,这似乎引起了以下错误消息: “类型’Any’没有下标成员” 我在代码中的许多地方调用插入某些内容,但出现此错误,并且我无法运行代码。 以下代码有效: 但是,与以前相比,现在看不到发生了什么变化或什么使它成为必需。 据我所知,唯一改变的是观察的语法,但是我不明白为什么这会导致我的代码停止工作。 问题答案: 在F

  • 问题内容: 我正在一个Swift操场上玩,正在上一堂新课。由于某种原因,我不断收到这样的错误:类“没有成员类型”,其名称的常量前面定义了三行。这是代码: Xcode Beta6一直在倒数第二行给我一个错误,说“ DataModel.Type没有名为’myCalendar’的成员 尽管我认为这不会有所作为,但我尝试将myCalendar定义为var。 问题答案: 您无法初始化引用同一类的另一个实例属

  • 问题内容: 我知道,这个特定的错误已经在各处发布,并且代码有些基本,但是我自己仍然无法弄清楚这个错误,我需要建议。 问题是当我添加parse.com上提供的前两行代码以保存对象时 第二行出现以下错误: “ PFObject”没有名为“下标”的成员 我正在使用Xcode 6.3 beta2。所有必需的库都与通过BridgeHeader导入的二进制文件链接。 我应该使用什么语法? 问题答案: 发生这种

  • 问题内容: 我正在使用Swift 3和Alamofire 4.0。我可以打印出整个响应,但无法遍历和打印出每个值。当我尝试在下面打印“标题”时,出现“ NSFastEnumerationIterator.Element”类型(又名“ Any”)没有下标成员的情况。我们非常感谢您的帮助。 问题答案: 只需使用本机Swift 。除非绝对没有选择,否则请 始终 使用Swift本机类型。缺少类型信息,因此