快速从 MKLocalSearch 对象中检索第一个“mapItem”元素

Posted

技术标签:

【中文标题】快速从 MKLocalSearch 对象中检索第一个“mapItem”元素【英文标题】:Retrieve first 'mapItem' element from MKLocalSearch object in swift 【发布时间】:2019-02-21 19:36:43 【问题描述】:

首先我想说我是 swift 语言的新手。

我的问题几乎反映了这个问题: Accessing MKLocalSearchResponse item (swift)

但是,当我将其应用于外观相似的代码时,我收到错误“'MKLocalSearch' 类型的值没有成员'mapItems'”

就像上面的链接一样,我想要第一个 mapItems (mapItems[0]) 结果。 有人可以帮帮我吗?

这是我的代码:

    let latitude = String(currentLocation.coordinate.latitude)
    let longitude = String(currentLocation.coordinate.longitude)

    var station1Unwrapped: String! = ""
    var station2Unwrapped: String! = ""

    var coord: CLLocationCoordinate2D!
    coord = CLLocationCoordinate2DMake(currentLocation.coordinate.latitude, currentLocation.coordinate.longitude);
    var region: MKCoordinateRegion!
    region = MKCoordinateRegion(center: coord, latitudinalMeters: 100, longitudinalMeters: 100);

    let request = MKLocalSearch.Request()
    request.naturalLanguageQuery = "Train Station"
    request.region = region

    let search = MKLocalSearch(request: request)
    search.start  response, error in
        guard let response = response else 
            print("There was an error searching for: \(String(describing: request.naturalLanguageQuery)) error: \(String(describing: error))")
            return
        

        print("Inside function")

        let station1 = response.mapItems[0].name


    

    var newLocVar = (search.mapItems[0] as! MKMapItem).name
    print(newLocVar)

【问题讨论】:

【参考方案1】:

变量searchMKLocalSearch,所以它没有属性mapItems。如果你想打印MKMapItem's name,你应该访问完成块中的mapItems,在那里你可以访问response,即MKLocalSearch.Response。你写的let station1 = response.mapItems[0].name 是完全正确的,它包含找到的第一个mapItems 的名称

【讨论】:

感谢您的回复 qtingo,但我如何从街区外访问地图项目 - 我有其他代码在那里我想显示车站名称 刚刚将代码移到完成块内 xD 谢谢

以上是关于快速从 MKLocalSearch 对象中检索第一个“mapItem”元素的主要内容,如果未能解决你的问题,请参考以下文章

SharePoint 2019 爬网错误:第一次尝试爬网此对象失败。 (无法从 URI 中检索 blob...)

如何使用 MKLocalSearch 请求获取附近的地方、照片

详解预训练模型在信息检索第一阶段的应用

从方法中检索调用方法名称[重复]

MKLocalSearch 不提供与本地 Apple 地图应用程序中的搜索相同的结果

MKLocalSearch 结果的唯一 ID?