2013-08-06 58 views
2

我已經查找了3個不同的頁面,瞭解它是如何工作的。但是,我真的可以使用一些幫助,因爲我正在得到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 ..這是我的理解,關閉應用程序主屏幕和鎖定設備後,延期更新應該踢in。我檢查了[位置計數]和它仍然是1.我期待它比這更大..

我不認爲這是很好,所以如果我犯了一個粗心的錯誤,請讓我知道。我沒有複製和粘貼,所以可能會有一些小的錯別字。提前致謝。

我在iPhone 5

+0

你啓用位置UIBackgroundMode? http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html –

+1

是的,我已經啓用 – tluck234

+1

除了我的電池沒有很快運行,我沒有有任何理由相信它正在工作..但我還沒有搬過一段時間..既然我上次去外面去做一些測試 – tluck234

回答

3

對於顯著變更服務,你必須移動的系統來記錄的更新延期定位更新,運行iOS 6.0。您已指定距離較高的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很高興能幫到你! –