2012-06-19 1 views
0

Я использую CoreLocation, и я хочу вызвать метод для выполнения некоторых вычислений по широте и долготе после того, как им были присвоены допустимые значения или после того, как эти значения были обновлены.есть функция Performer на некотором булевом в разработке ios

Как вы это реализуете? Я рассматривал возможность использования функции performSelector, но эти методы требуют временной задержки - я не хочу задержки времени, я хочу знать, что широта и долгота имеют правильные значения.

+0

Любая причина, по которой вы хотите использовать performSelector? Вы можете просто выполнить работу в методах делегатов CoreLocation. – sosborn

+0

Задержка времени может быть 0 для выполнения методов выбора. Не могли бы вы использовать KVO, если вы не хотите использовать performSelector? – Gruntcakes

+0

№ '-performSelector:' не дает вам никакой уверенности в том, что lat/long будет действительным во время вызова, * классическим * гоночным состоянием. Как указано @sosborn, и приведенный ниже @ElJay, правильный подход использует обратные вызовы делегатов. –

ответ

2

Почему бы не назвать какой бы метод вы хотите в Основной метод делегата МЕСТОПОЛОЖЕНИЕ:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation; 

Правило большого пальца, чтобы игнорировать первый набор координат CLLocation.

+0

Следует также отметить, что 'CLLocation' имеет свойства' horizontalAccuracy' и 'verticalAccuracy', которые могут быть полезны при принятии решения о том, игнорировать/отбрасывать обновление местоположения. –