我想找出iphone的当前位置,为此我正在使用这种方法。并尝试保存它以进行进一步的操作。但是当我以纬度和经度的形式打印位置值时它总是给我0.00000和0.0000。我没有说明我错在哪里。这个方法保存在GetLocation类中。
-(void)updatelocation{
NSLog(@"coming in update location in get location class");
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];
NSLog(@"location manager %@", locationManager);
CLLocation *location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
NSLog(@"Latitude is: %f\n\n\n and longitude is: %f\n\n\n", location.coordinate.latitude, location.coordinate.longitude);
NSLog(@"coordinate %f",coordinate.latitude);
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
[defaults setObject:latitude forKey:@"latitude"];
[defaults setObject:longitude forKey:@"longitude"];
}
当我在另一个类中调用此方法时。
GetLocation *location = [GetLocation alloc] init ];
[location updatelocation];
但我总是得到0.0000和0.0000。任何人都可以告诉我,我错了。
答案 0 :(得分:3)
你走得太快,CLLocationManager
还没有确定你的位置。您应该实施CLLocationManagerDelegate
的{{1}}方法。在该方法中,用户的位置 已知。
答案 1 :(得分:2)
首先查看-[CLLocation coordinate] documentation ......甚至this one ...