2013-08-06 3 views
2

Я искал около трех разных страниц о том, как это работает. Но я мог бы действительно использовать некоторую помощь, потому что получаю kCLError = 15. Вот что я до сих пор, я объясню больше.deferredLocationUpdate iOS 6

locationManager = [[CLLocationManager alloc] init]; 
[locationManager setDelegate:self] 
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
[locationManager startUpdatingLocation]; 

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 
{ 
    CLLocation *currentLocation = [locations lastObject]; 
    NSLog(@"%@",[locations lastObject]; 
    NSLog(@"%d",[CLLocationManager deferredLocationUpdatesAvailable]); 
    [locationManager allowDeferredLocationUpdatesUntilTraveled:CLLocationDistanceMax timeout:CLTimeIntervalMax]; 

После этого у меня есть код ошибки

-(void)locationManager:(CLLocationManager *)manager didFinishDeferredUpdatesWithError:(NSError *)error 
{ 
    NSString *stringError = [NSString stringWithFormat:@"error: %@",[error description]]; 
    _whatMonitor.text = stringError; 
} 

Таким образом, любой, кто может помочь мне, я серьезно так благодарен. У меня также есть подсчет массива местоположений, но это никогда не меняется с 1 .. Я понимаю, что после закрытия приложения на главном экране и блокировки устройства, отложенные обновления должны быть введены. Я проверил [количество мест] и это все равно 1. Я ожидаю, что это будет больше этого.

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

Я бег IOS 6.0 на iPhone 5.

+0

Включили ли вы местонахождение UIBackgroundMode? http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html –

+1

Да, у меня есть это включен – tluck234

+1

Кроме того, моя батарея не сработала быстро, у меня нет есть какие-то основания полагать, что он работает. Но я тоже не переехал ни с того ... Не с тех пор, как я последний раз выходил на улицу, чтобы провести какое-то тестирование – tluck234

ответ

3

Для значительного изменения службы и отсроченных геоданных вы должны перейти к системе для записи обновления. Вы указали CLLocationDistanceMax, что является большим значением для расстояния. Вы можете указать более низкое расстояние, чтобы получить более частые изменения, например, вы могли бы указать каждое изменение 100 метра, чтобы запустить обновление следующим образом:

[locationManager allowDeferredLocationUpdatesUntilTraveled:CLLocation(100) timeout:CLTimeIntervalMax]; 

Ссылка: http://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html

+1

Хорошо, позвольте мне попробовать. – tluck234

+1

Я добавил код для отправки координат в базу данных mySQL при обновлении и работал как ожидалось. Спасибо, что помогли мне! – tluck234

+0

@ tluck234 Рад, что я мог помочь! –