我正在努力从一些自定义对象中创建一个Swift Dictionary
。
下面是我定义字典的地方;
var carDictionary:[String:Any] = Dictionary<String, Any>()
下面的for循环是我尝试从自定义对象中填充字典的地方:
for dataPoint in dataPoints! {
carDictionary[dataPoint.value(forKey: dataPoint.dataKey)]
}
dataPoint
是以下类的实例:
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中字典创建如何工作的理解有些缺失,这使我无法解决问题 - 任何人都有任何建议吗?谢谢!
有类似问题的帖子: String not convertible to [AnyObject]
Cannot subscript a value of type '[String : String]?' with an index of type 'String'
Cannot subscript a value of [AnyObject]? with an index of type Int
答案 0 :(得分:0)
您将价值放在预期关键下标的位置。
与数组类似,您可以像这样访问字典中的对象:
let myValue = myDictionary["myKey"]
这将检索字典中具有键&#34; myKey&#34;的对象。要在字典中设置值,请按以下方式分配键下标:
myDictionary["myKey"] = myValue
在您的情况下,看起来您的dataPoint类具有可以在字典中使用的键和值对象:
for dataPoint in dataPoints! {
carDictionary[dataKey] = dataPoint.value(forKey: dataPoint.dataKey)
}