Получите первый элемент 'mapItem' из объекта MKLocalSearch в быстром - PullRequest
0 голосов
/ 21 февраля 2019

сначала я хочу сказать, что я новичок в языке swift.

Мой вопрос почти отражает этот вопрос: Доступ к элементу MKLocalSearchResponse (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 Ответ

0 голосов
/ 21 февраля 2019

Переменная search равна MKLocalSearch, поэтому она не имеет свойства mapItems.Если вы хотите напечатать MKMapItem's name, вы должны получить доступ к mapItems в блоке завершения, где вы получите доступ к response, который MKLocalSearch.Response.Строка, которую вы пишете let station1 = response.mapItems[0].name, является совершенно правильной и содержит имя первого mapItems найденного

...