2010-04-20 50 views
1

所以,我跟着其他相關的線程,但由於某種原因,我仍然有這個錯誤,我準備把我的頭髮。我已經實現了locationManager:didFailWithError來檢查並查看用戶是否選擇「不允許」來使用當前位置。iPhone定位管理器:didFailWithError問題,當禁用GPS

-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { 
NSLog(@"IN ERROR"); 
if ([error code] == kCLErrorDenied){ 
[manager stopUpdatingLocation]; 
} 
} 

然而,當用戶選擇「不允許」總是出現以下錯誤......這是奇怪的,尤其是文本「處於錯誤」出現的順序。

錯誤,時間,293420691.000,功能, 「無效 CLClientHandleDaemonDataRegistration(__ CLClient *, 常量 CLDaemonCommToClientRegistration *, 常量__CFDictionary *)」,服務器沒有 接受客戶登記1 2010-04-19 21 :44:51.000 testApp [1414:207] IN ERROR

所以,它的輸出這個錯誤也有機會進入didFailWithError功能,甚至之前。有沒有人對可能發生的事情有任何想法?其餘的locationManager代碼如下:

self.locationManager = [[[CLLocationManager alloc] init] autorelease]; 
locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; 
locationManager.distanceFilter = 2; 
[locationManager startUpdatingLocation]; 

回答

0

看起來只是來自Core Location的信息性消息。它不會崩潰你的應用程序,用戶不會看到它,它仍然使用正確的錯誤代碼調用didFailWithError。

在我的測試中,消息出現在iPhone模擬器和設備(3.1.3)和iPad模擬器上,但不是iPad設備(3.2)。

+0

謝謝DyingCactus ...我想我對蘋果拒絕我的應用程序太過偏執,因爲這樣的小事情,但如果這是正常的,那麼我不會失去更多的睡眠。謝謝! – BenG 2010-04-20 13:12:38

0

如果您也使用MapKit,那麼這是MapKit中的錯誤。 MapKit正在註冊Core Location,然後沒有正確處理用戶拒絕位置更新或失敗時報告的錯誤。它應該通過委託方法傳遞這個錯誤(就像它爲地理編碼錯誤所做的那樣),但是不會。

不幸的是,我想不出有什麼辦法來攔截來自核心位置的消息,因爲MapKit維護了一個CLLocationManager實例,它使用它獲取位置,而這正是向其委託報告錯誤的位置。