无法将'[String:String?]'类型的值转换为预期的参数类型'[String:AnyObject?]'

Ade*_*ici 10 iphone mapkit ios swift

我是Swift的新手,我遵循了这个教程:http://www.raywenderlich.com/90971/introduction-mapkit-swift-关于MapKit的教程.问题是我在这行代码上遇到了错误

let placemark = MKPlacemark(coordinate: self.coordinate, addressDictionary: addressDict)
Run Code Online (Sandbox Code Playgroud)

标题上描述了错误.包含此行的方法是:

func mapItem() -> MKMapItem {
    let addressDict = [String(kABPersonAddressStreetKey): self.subtitle]
    let placemark = MKPlacemark(coordinate: self.coordinate, addressDictionary: addressDict)

    let mapItem = MKMapItem(placemark: placemark)
    mapItem.name = self.title

    return mapItem
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Dha*_*esh 14

您需要subtitleAnyObject如下所示进行投射:

let addressDict = [String(kABPersonAddressStreetKey): self.subtitle as! AnyObject]
Run Code Online (Sandbox Code Playgroud)

并且您的完整代码将是:

func mapItem() -> MKMapItem {
    let addressDict = [String(kABPersonAddressStreetKey): self.subtitle as! AnyObject]
    let placemark = MKPlacemark(coordinate: self.coordinate, addressDictionary: addressDict)

    let mapItem = MKMapItem(placemark: placemark)
    mapItem.name = self.title

    return mapItem
  }
Run Code Online (Sandbox Code Playgroud)