我正在尝试在地图中显示当前位置但却失败了。它因位置为空而给出错误。应在模拟器调试位置选项中选择哪个选项。如果我试图使用none而不是它返回null location nd for custom它给出了预先确定的坐标的位置。我想获得当前的位置!
答案 0 :(得分:0)
我不认为你可以通过模拟器获得当前位置。您所能做的就是在调试中提供当前位置的经度和纬度 - >位置 - >自定义位置。这将被模拟器用作当前位置。 其他选项是将GPX文件添加到项目方案中。编辑方案 - >选项 - >选中允许位置模拟。将GPX文件添加到项目中。
以上设置用于在模拟器中进行调试。它基于实际设备中的当前位置运行,即使这些设置未完成(对于无错代码)。
答案 1 :(得分:0)
先创建对象
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
#define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
if(IS_OS_8_OR_LATER)
{
[locationManager requestAlwaysAuthorization];
[locationManager requestWhenInUseAuthorization];
}
[locationManager startUpdatingLocation];
//Below two lines give you current location (lat-long).
Latitude = [NSString stringWithFormat:@"%f",locationManager.location.coordinate.latitude];
NSLog(@"Lat====%@",Latitude);
Longitude = [NSString stringWithFormat:@"%f",locationManager.location.coordinate.longitude];
NSLog(@"Log====%@",Longitude);
答案 2 :(得分:0)
您可以在AppDelegate.h
@property (nonatomic, strong) CLLocationManager *locationManager;
您可以将其用于获取当前位置。您可以在AppDelegate.m
文件
if ([CLLocationManager locationServicesEnabled]) {
if (!_locationManager) {
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
_locationManager.distanceFilter = 10.0;
[self.locationManager startMonitoringSignificantLocationChanges];
}
// Check for iOS 8. Without this guard the code will crash with "unknown selector" on iOS 7.
if ([_locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
[_locationManager requestAlwaysAuthorization];
[_locationManager startUpdatingLocation];
}