2014-07-15 76 views
1

下面是我的CLLocationManagerDelegate的代碼。我打電話使用委託方法:CLLocation返回(空)座標

locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; 

[locationManager startUpdatingLocation]; 

的委託方法:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error 
{ 
    NSLog(@"didFailWithError: %@", error); 
    UIAlertView *errorAlert = [[UIAlertView alloc] 
          initWithTitle:@"Error" message:@"Failed to Get Your Location" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [errorAlert show]; 
} 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
    //get current location of phone: 
    if (newLocation != nil) { 
     _m.longitude = [NSString stringWithFormat:@"%.8f", newLocation.coordinate.longitude]; 
     _m.latitude = [NSString stringWithFormat:@"%.8f", newLocation.coordinate.latitude]; 
     _m.timestamp = newLocation.timestamp; 
     NSLog(@"didUpdateToLocation: %@", newLocation); 
    } 
    CLLocation *currentLocation = newLocation; 

} 

當我打電話didUpdateToLocation方法,我已經通過調試即newLocation不是nil驗證。 _m是在我的頭文件中聲明的對象,也不是零。 locationManager同樣如此。但是,當我嘗試設置_m.latitude等並NSLog它們時,它們都顯示爲(null)。所述didUpdateToLocation的NSLog導致線路是這樣的:

didUpdateToLocation:< + 47.64312748,-122.12163262> +/-65.00米(速度-1.00 MPS /當然-1.00)@ 14年7月15日,9點26分07秒AM太平洋夏令時間

我不確定我要去哪裏錯。

+0

什麼是'_m'?什麼顯示爲'(null)'?您應該使用'locationManager:didUpdateLocations:'您使用的方法自iOS 6.0以來已被棄用。 –

+0

_m是一個包含緯度,經度和時間戳的對象,分別爲NSString,NSString和NSDate。 – Amyga17

+0

你如何記錄這個值?嘗試使用NSLog(@「Cord:%.f」,cord); –

回答

0

您的代碼看起來正確。所以可能你在日誌中爲空,因爲_m == nil

+0

_m == nil的計算結果爲0。 – Amyga17