我正在尝试在Swift中创建Dictionary
,将MKPointAnnotation
映射到Event
,其中Event
是自定义类。
我已经实例化了Dictionary
:
var annotations: Dictionary = [MKPointAnnotation : Event]()
我试图通过以下方式添加:
annotations[annotation as MKPointAnnotation] = event as Event
根据Swift文档,这是一种有效的方法。我也尝试过使用:
annotations.updateValue(event, forKey: annotation)
但是这两种方法都会产生错误:
'Dictionary' is not identical to 'Dictionary<Key, Value>'
任何想法为什么?
答案 0 :(得分:4)
当您需要Dictionary
时,您正在向普通的Dictionary<MKPointAnnotation, Event>
提升。
更改以下行:
var annotations: Dictionary = [MKPointAnnotation : Event]()
为:
var annotations = [MKPointAnnotation : Event]()
然后按住alt键点击“注释”,看看它是否推断出了正确的类型,该类型应该是Dictionary<MKPointAnnotation, Event>
而不是非通用的Dictionary
。