【问题标题】:Cannot convert value of type '[String : String?]' to expected argument type '[String : AnyObject?]'无法将类型“[String : String?]”的值转换为预期的参数类型“[String : AnyObject?]”
【发布时间】:2015-10-30 13:54:47
【问题描述】:

我是 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
}

请帮忙。

【问题讨论】:

    标签: ios iphone swift mapkit


    【解决方案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
      }
    

    【讨论】:

    • 就是这样!非常感谢!
    • 我连根拔起,因为我不快。 :) 我不知道为什么当我尝试投射字典时它会抱怨......就是这样
    • 这有帮助。非常感谢你
    猜你喜欢
    • 2015-12-24
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多