gpt4 book ai didi

ios - Array.map() 产生 '[T]' ,而不是预期的上下文结果类型 '[String: Any?]'

转载 作者:IT王子 更新时间:2023-10-29 05:19:18 24 4
gpt4 key购买 nike

我正在编写一个扩展来桥接 FirebaseDatabase 和 Eureka 之间的字典值.

private extension Dictionary {
func firebaseFriendlyDictionary() -> [String: Any?] {
return self.map({ (key: String, value: Any?) -> (String, Any?) in
if value is NSDate {
return (key, (value as! NSDate).timeIntervalSince1970)
}
return (key, value)
})
}
}

但是当我尝试构建时抛出这个错误:

map 生成“[T]”,而不是预期的上下文结果类型“[String: Any?]”

最佳答案

您的问题在于,map 总是返回一个Array,即使应用于Dictionary 也是如此。你的错误消息基本上意味着,你声明你的方法返回一个Dicitonary,但是里面的语句返回一个Array([T] - 意味着具有 一些 类型 T 的对象的数组)。在您的情况下,map 返回的数组将包含 元组(更多关于它们 here )。在这种情况下,它看起来像一个键值对,但它不等同于字典中的键值对。基本上,元组使您能够从方法返回多个值/对象。您可以将它们视为匿名 结构。

在我看来,没有必要使用 map 来完成您需要的 - Xcoder 先生提供的解决方案是可行的方法。

关于ios - Array.map() 产生 '[T]' ,而不是预期的上下文结果类型 '[String: Any?]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42038176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com