Вы должны вызвать вызов с чем-то иным, чем didUpdateLocation
, потому что частота этого вызова зависит от пользователя устройства, а не от вашего кода. Если вам нужно только позвонить в веб-службу, если произошли значительные изменения в местоположении, вы можете сделать следующее.
- Сохранить заказ, чтобы соответствовать по значению
didUpdateLocation
.
- Используйте повторяющийся
NSTimer
на двухминутном интервале.
- Каждый раз, когда срабатывает таймер, проверяйте текущее местоположение по сравнению с местоположением при последнем запросе. Если он превышает пороговое значение, сделайте запрос.
- Если запрос сделан, сохраните местоположение для следующей итерации.
Альтернативный алгоритм:
- Сделать веб-запроса. Помни время.
- Когда
didUpdateLocation
пожаров, проверьте последний раз, когда вы сделали веб-запрос. Если это было более 2 минут назад, сделайте запрос, иначе игнорируйте обновление.
Возможно, вам потребуется немного каждого, в зависимости от ваших конкретных потребностей. Если каденция для запроса наиболее важна, начните с первой. Если единственным важным битом является то, что вы не вызываете чаще, чем каждые 2 минуты, но более длинные интервалы - все в порядке, идите со вторым.
Возможно, вы должны создать для него таймер. – anhtu