iPhone - наблюдатель / каждые х секунд - PullRequest
0 голосов
/ 13 января 2010

У меня есть такой наблюдатель:

[mapView.userLocation addObserver:self forKeyPath:@"location" options:0 context:NULL];

Таким образом, метод вызывается, если пользователь меняет свое геолокации.Но я хочу, чтобы метод также вызывался каждые x секунд, потому что если пользователь не перемещается, местоположение не изменится, и поэтому метод не будет вызываться.Но я должен сделать некоторые расчеты.

Как я могу это сделать?

Заранее большое спасибо и наилучшие пожелания.

Ответы [ 2 ]

3 голосов
/ 13 января 2010

Использовать таймер

NSTimer *timer;
timer = [NSTimer timerWithTimeInterval:30 //seconds
                                target:self
                              selector:@selector(myMethodtoRun:)
                              userInfo:nil // send an object if you want
                               repeats:YES];

[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];

Позже, если вы хотите отменить таймер, в методе myMethodToRun вы можете аннулировать

- (void) myMethodToRun:(NSTimer *)timer {
    …
    if (shouldStopTimer) {
        [timer invalidate];
    }
}
0 голосов
/ 13 января 2010

MKMapView не дает вам большого контроля над устройством GPS. Я рекомендую использовать CLLocationManager, чтобы вы могли выполнять обновления в любое время. Тогда вы можете использовать NSTimer @coneybeare только что предложил.

В CLLocationManager вы можете установить distanceFilter, который, как мне кажется, делает то же самое, что и наблюдатель в MKMapView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...