访问MKLocalSearchResponse项目(swift) [英] Accessing MKLocalSearchResponse item (swift)

查看:222
本文介绍了访问MKLocalSearchResponse项目(swift)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我执行 println(localSearchResponse)时,我得到一个MapItem对象,其中包含大量有关该位置的详细信息。在这个例子中,它的UCSD。以下是我的日志中显示的输出。

When I do println(localSearchResponse), I get a MapItem object, which includes a ton of details about the location. In this example, its UCSD. Here is the output showing in my log.

<MKLocalSearchResponse: 0x1c53d640> {
    boundingRegion = "<center:+32.87514836, -117.23958822 span:+0.00725621, +0.00825332>";
    mapItems =     (
        "<MKMapItem: 0x1c538090> {\n    isCurrentLocation = 0;\n    name = \"University of California, San Diego\";\n    phoneNumber = \"+18585342230\";\n    placemark = \"University of California, San Diego, 9500 Gilman Dr, La Jolla, CA  92093-5004, United States @ <+32.87529400,-117.23961000> +/- 0.00m, region CLCircularRegion (identifier:'<+32.87514837,-117.23958825> radius 557.57', center:<+32.87514837,-117.23958825>, radius:557.57m)\";\n    url = \"http://www.ucsd.edu\";\n}"
    );
}

注意它如何输出 placemark =加州大学。 .. 并且有地址?如何获取此值并将其存储到变量中?这是我的代码:

Notice how it outputs placemark = University of California... and has the address? How do I get this value and store it into a variable? Here is my code:

localSearchRequest = MKLocalSearchRequest()
localSearchRequest.naturalLanguageQuery = addressTextField.text
localSearch = MKLocalSearch(request: localSearchRequest)
localSearch.startWithCompletionHandler { (localSearchResponse, error) -> Void in

    if localSearchResponse == nil{
        var alert = UIAlertView(title: nil, message: "Place not found", delegate: self, cancelButtonTitle: "Try again")
        alert.show()
        return
    }

    //prints the MKLocalSearchResponse with name, phoneNumber, placemark
    println(localSearchResponse)

    //Get latitude and longitude
    var newRecordLat = localSearchResponse.boundingRegion.center.latitude
    var newRecordLong = localSearchResponse.boundingRegion.center.longitude

    //How do I get the address, which is "placemark" in the MKLocalSearchResponse?
    var newRecordAddress = localSearchResponse.mapItems...???

    //store values to Parse
    self.latToParse = newRecordLat
    self.longToParse = newRecordLong
}

以下是 MKSearchResponse

这里是 MKMapItem

推荐答案

答案是:

var newRecordAddress = (localSearchResponse.mapItems[0] as! MKMapItem).placemark

此对象包含您需要的所有信息。在演示项目中检查

This object contains all information you need. Checked it in demo project

仅限地址:

var newRecordAddress = (localSearchResponse.mapItems[0] as! MKMapItem).placemark
let addressOnly = newRecordAddress.name + ", " + newRecordAddress.title

newRecordAddress.name 是地方名称
newRecordAddress.title 是您需要的地址

newRecordAddress.name is place's name newRecordAddress.title is place's address you required

这篇关于访问MKLocalSearchResponse项目(swift)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆