下面是我的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太平洋夏令時間
我不確定我要去哪裏錯。
什麼是'_m'?什麼顯示爲'(null)'?您應該使用'locationManager:didUpdateLocations:'您使用的方法自iOS 6.0以來已被棄用。 –
_m是一個包含緯度,經度和時間戳的對象,分別爲NSString,NSString和NSDate。 – Amyga17
你如何記錄這個值?嘗試使用NSLog(@「Cord:%.f」,cord); –