Swift - CLGeocoder reverseGeocodeLocation завершениеЗакрытие

Что я пытаюсь сделать, это передатьCLLocation к функцииgetPlacemarkFromLocation который затем использует переданныйCLLocation черезreverseGeocodeLocation установитьCLPlacemark? это будет возвращено.

У меня проблемы с созданиемcompletionHandler закрытие вreverseGeocodeLocation, он выдает ошибку компилятора / сбой:


В СвифтеCLGeocodeCompletionHandler являетсяCLGeocodeCompletionHandler = (AnyObject[]!, NSError!) -> Void согласно документацииAnyObject[]! должен содержатьCLPlacemark объекты так же, как версия Objective-C.

Вот мой текущий код:

class func getPlacemarkFromLocation(location:CLLocation)->CLPlacemark?{
    var g = CLGeocoder()
    var p:CLPlacemark?
    g.reverseGeocodeLocation(location, completionHandler: {
        (placemarks, error) in
        let pm = placemarks as? CLPlacemark[]
        if (pm && pm?.count > 0){
            p = placemarks[0] as? CLPlacemark
        }
    })
    return p?
}

РЕДАКТИРОВАТЬ: Кажется, что ошибка была связана сplacemarks.count сplacemarks не обрабатывается как массив. Это компилируется сейчас, однако я получаю только ноль при попытке установитьp внутриcompletionHandler, Я проверилCLLocationПроходят, и они действительны.

РЕДАКТИРОВАТЬ 2: после печатиplacemarksЯ могу подтвердить, что он возвращает данные. тем не мениеp все еще возвращается ноль.

Ответы на вопрос(6)

Ваш ответ на вопрос