Невозможно преобразовать значение типа '[String: String?]' В ожидаемый тип аргумента '[String: AnyObject?]'

Я новичок в Swift, и я последовал этому руководству: http://www.raywenderlich.com/90971/introduction-mapkit-swift-tutorial о MapKit. Проблема в том, что я получил ошибку в этой строке кода

let placemark = MKPlacemark(coordinate: self.coordinate, addressDictionary: addressDict)

Ошибка описана в заголовке. Метод, который содержит эту строку:

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
}

Пожалуйста, помогите.

Ответ 1

Вам нужно указать subtitle как AnyObject, как показано ниже:

let addressDict = [String(kABPersonAddressStreetKey): self.subtitle as! AnyObject]

и ваш полный код будет:

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
  }