Swift 字典表示

Swift Dictionary Representation

我正在使用一些自定义对象创建 Swift Dictionary

下面是我定义字典的地方; var carDictionary:[String:Any] = Dictionary<String, Any>()

下面的 for 循环是我试图从我的自定义对象中填充字典的地方:

 for dataPoint in dataPoints! {
     carDictionary[dataPoint.value(forKey: dataPoint.dataKey)]
 }

dataPoint 是以下 class 的实例:

public class NACarDataPoint: NSObject {

    var dataKey: String!
    var dataValue: Any!

    public override init() {
        // generic initializer, generally designed to be overridden
        super.init()
    }

    init(key: String, value: Any) {
        self.dataKey = key
        self.dataValue = value
    }
}

我得到了

公认的常见错误
`Cannot subscript a value of type `[String : Any]` with an index of type `Any`?`

但是,我认为我对 Swift 中字典创建的工作原理的理解有一些缺失,这让我无法弄清楚这个问题 - 有人有什么建议吗?谢谢!

有类似问题的帖子:

您将值放在需要键下标的位置。

与数组类似,您可以像这样访问字典中的对象:

let myValue = myDictionary["myKey"]

这将检索字典中具有键 "myKey" 的对象。要改为在字典中设置值,请像这样分配给键下标:

myDictionary["myKey"] = myValue

在您的情况下,您的数据点 class 似乎具有可在字典中使用的键和值对象:

 for dataPoint in dataPoints! {
     carDictionary[dataKey] = dataPoint.value(forKey: dataPoint.dataKey)
 }