2012-09-04 73 views
0

我正在使用CLGeocoder將設備的當前位置進行地理編碼。它在模擬器上效果很好,但總是在設備(iPhone 4和iPad 3)上出現kCLErrorNetwork錯誤而失敗。CLGeocoder始終在設備上失敗,但在模擬器中工作

的代碼是非常簡單的:

if (geocoder == nil) geocoder = [[CLGeocoder alloc] init]; 
[geocoder reverseGeocodeLocation:self.location completionHandler:^(NSArray *placemarks, NSError *error) { 

    if (error == nil) { 

     // Do good stuff with the placemark... 

    } else { 

     NSLog(@"unable to reverse geocode location %@ due to error: %@", self.location, error); 
    } 
}]; 

打印的錯誤信息是:

unable to reverse geocode location <[redacted],[redacted]> +/- 69.94m (speed -1.00 mps/course -1.00) @ 9/4/12 10:30:19 AM Eastern Daylight Time due to error: Error Domain=kCLErrorDomain Code=2 "The operation couldn’t be completed. (kCLErrorDomain error 2. 

一旦CLLocationManager提供了一個位置此方法僅調用,所以該方法總是通過一個有效的位置。

我已經在幾個Wi-Fi網絡和3G網絡上嘗試過它。它從不在設備上工作。

任何幫助將不勝感激!

+0

您應該首先檢查地標是否爲零,如果是,那麼您可以查看錯誤 – Felix

+0

@ phix23恐怕地標爲零,所以似乎沒有問題。 –

回答

0

這可能不是問題與您的問題,但我猜設備上的網絡層崩潰,並且意味着它沒有連接到互聯網。關閉飛機模式併爲我解決問題。

相關問題