我尝试捕捉经度和纬度值并暂时在控制台(NSLog)中显示它们,我已经在viewWillAppear
方法中使用了相应的代码,无论如何,这不是什么大不了的事,我的问题是当我第一次显示视图时,我的控制台告诉我:
latitude: 0.000000
longitude:0.000000
第二次它告诉我:
latitude : 134217731.444448
longitude : 0.700000
第三次:
latitude : 134217731.444448
longitude : 0.700000
n时间:
latitude : 134217731.444448
longitude : 0.700000
这是viewWillAppear
中的代码(我确定它的逻辑非常正确,我在等待你的澄清):
-(void)viewWillAppear:(BOOL)animated
{
// locationManager update as location
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];
CLLocation *location = [locationManager location];
// Configure the new event with information from the location
CLLocationCoordinate2D coordinate = [location coordinate];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
NSLog(@"Latitude : %@", latitude);
NSLog(@"Longitude : %@",longitude);
}
请注意,我在iPhone模拟器上工作,thx求助:)))
答案 0 :(得分:2)
你不应该在这里检查坐标。
在同一个类中实现locationManager:didUpdateToLocation:fromLocation:
方法并检查此方法中的位置:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
CLLocationCoordinate2D coordinate = [newLocation coordinate];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
NSLog(@"Latitude : %@", latitude);
NSLog(@"Longitude : %@",longitude);
}
您当前的课程应该实施CLLocationManagerDelegate
协议,即它应该是位置管理员的代表。