2016-09-07 6 views
0

Поскольку мои приложения позволяют пользователю получать свое местоположение время от времени, я мог бы реально использовать возможность получить местоположение в блоке завершения. На данный момент я настроить уведомление с помощьюБлок завершения координат GPS

NSNotificationCenter.defaultCenter().postNotificationName("functionToRun", object: nil) 

Когда запрос пользователя местоположение, я просто запустить эту функцию

func getLocation() -> CLLocation { 
    locationManager.requestLocation() 
    return location 
} 

Однако это обновляя место, которое может занять некоторое время, и просто вернув последнее место, могу ли я реализовать это в блоке завершения, чтобы я мог получить фактическое местоположение?

+0

Вы можете сохранить закрытие завершения в свойстве, а затем вызвать закрытие из 'didUpdateLocations'. Это в основном шаблон делегирования, за исключением того, что вы пропускаете закрытие функции, а не устанавливаете делегата. – Paulw11

+0

Спасибо! Не могли бы вы ответить на простой пример? Было бы очень признательно. – Recusiwe

ответ

0

CLLocationManager не работает именно так, но вы можете легко использовать что-то наподобие контейнера для какао CLLocationManager-blocks, чтобы получить эту функциональность. Просто прочтите документацию, чтобы убедиться, что она ведет себя так, как вы ожидаете.

Смежные вопросы