Swift:'Dictionary'与'Dictionary <key,value =“”>'</key,>不同

时间:2015-04-17 05:00:12

标签: ios iphone swift

我正在尝试在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>'

任何想法为什么?

1 个答案:

答案 0 :(得分:4)

当您需要Dictionary时,您正在向普通的Dictionary<MKPointAnnotation, Event>提升。

更改以下行:

var annotations: Dictionary = [MKPointAnnotation : Event]()

为:

var annotations = [MKPointAnnotation : Event]()

然后按住alt键点击“注释”,看看它是否推断出了正确的类型,该类型应该是Dictionary<MKPointAnnotation, Event>而不是非通用的Dictionary