2015-11-12 5 views
-1

Я использую didUpdateLocation. Внутри я позвонил в веб-службу.IOS didUpdateLocations называется multi time

И, я хочу каждые 2 минуты, я позвоню в веб-службы.

Но, didUpdateLocation обновление местоположения много раз. Итак, я должен позвонить в веб-службы. Это не хорошо.

Как я могу звонить через webservices каждые 2 минуты.

Пожалуйста, помогите!

+0

Возможно, вы должны создать для него таймер. – anhtu

ответ

1

Вы должны вызвать вызов с чем-то иным, чем didUpdateLocation, потому что частота этого вызова зависит от пользователя устройства, а не от вашего кода. Если вам нужно только позвонить в веб-службу, если произошли значительные изменения в местоположении, вы можете сделать следующее.

  1. Сохранить заказ, чтобы соответствовать по значению didUpdateLocation.
  2. Используйте повторяющийся NSTimer на двухминутном интервале.
  3. Каждый раз, когда срабатывает таймер, проверяйте текущее местоположение по сравнению с местоположением при последнем запросе. Если он превышает пороговое значение, сделайте запрос.
  4. Если запрос сделан, сохраните местоположение для следующей итерации.

Альтернативный алгоритм:

  1. Сделать веб-запроса. Помни время.
  2. Когда didUpdateLocation пожаров, проверьте последний раз, когда вы сделали веб-запрос. Если это было более 2 минут назад, сделайте запрос, иначе игнорируйте обновление.

Возможно, вам потребуется немного каждого, в зависимости от ваших конкретных потребностей. Если каденция для запроса наиболее важна, начните с первой. Если единственным важным битом является то, что вы не вызываете чаще, чем каждые 2 минуты, но более длинные интервалы - все в порядке, идите со вторым.

+0

Можете ли вы написать код здесь? –

0

Использование NSTimer.

NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:2.0 
                target:self 
               selector:@selector(handleTimer:) 
               userInfo:nil repeats:YES]; 

Положить этот код в метод DidLoad и добавить код ниже в другом месте.

 - (void)handleTimer:(NSTimer*)theTimer { 

     NSLog (@"Working"); 

    } 
+0

Не работает –

+0

@IOSDeveloper Обновлен код. каждые 2 секунды. вы увидите 'working' –

+0

Это тоже не работает. –

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