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

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

杨豪
2023-03-14
问题内容

我收到此错误:尝试运行此代码块时,“类型’Any’没有下标成员”:

init(snapshot: FIRDataSnapshot) {
    key = snapshot.key
    itemRef = snapshot.ref

    if let postContent = snapshot.value!["content"] as? String {   // error
        content = postContent
    } else {
        content = ""
    }
}

我一直在寻找答案,但找不到用FireBase解决此问题的答案。我该如何解决这个错误?


问题答案:

snapshot.value具有类型Any?,因此您需要将其强制转换为基础类型,然后才能对其进行下标。由于snapshot.value!.dynamicTypeis
NSDictionary,请使用可选的强制as? NSDictionary类型转换来建立类型,然后您可以访问字典中的值:

if let dict = snapshot.value as? NSDictionary, postContent = dict["content"] as? String {
    content = postContent
} else {
    content = ""
}

或者,您也可以单线执行此操作:

content = (snapshot.value as? NSDictionary)?["content"] as? String ?? ""


 类似资料:
  • 问题内容: 我查看了以前的文章,但似乎找不到解决此问题的方法。所有三行代码都给出“类型’Any’没有下标成员”错误。对此还很陌生,因此不胜感激。 问题答案: 的类型为。下标是一种特殊的函数,它使用将值括在大括号中的语法。此下标功能由实现。 因此,这里发生的是,作为开发人员的YOU知道这是一个,但是编译器却没有。它不会让您调用该函数,因为您试图在type的值上调用它并且未实现。为此,您必须告诉编译器

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

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

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

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

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