无法在ios8中获取纬度和经度值
我根据iOS8.1 SDK对我的应用程序进行了必要的更改,以跟踪位置。我正在使用下面的代码获取纬度和经度。尽管我没有获取纬度和经度值。我是否需要做除此之外的任何更改来获取纬度和经度值 在appdelegate.h中:无法在ios8中获取纬度和经度值,ios,objective-c,ipad,ios8,ios8.1,Ios,Objective C,Ipad,Ios8,Ios8.1,我根据iOS8.1 SDK对我的应用程序进行了必要的更改,以跟踪位置。我正在使用下面的代码获取纬度和经度。尽管我没有获取纬度和经度值。我是否需要做除此之外的任何更改来获取纬度和经度值 在appdelegate.h中: CLLocationManager *locationManager; 在appdelegate.m中: - (void)applicationDidBecomeActive:(UIApplication *)application{ if (locationManage
CLLocationManager *locationManager;
在appdelegate.m中:
- (void)applicationDidBecomeActive:(UIApplication *)application{
if (locationManager==nil) {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
[locationManager requestAlwaysAuthorization];
}
[locationManager startUpdatingLocation];
}
CLLocation *location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];
NSLog(@" location details %f %f ",locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude);
}
在Info.plist文件中
<key>NSLocationAlwaysUsageDescription</key>
<string>This will be used to obtain or track your location.</string>
NSLocationAlwaysUsageDescription
这将用于获取或跟踪您的位置。
我相信您没有利用CLLocationManager在您的CLLocationManager实际检索到位置时收到通知的CLLocationManager Legate。尝试直接从位置管理器获取位置几乎肯定每次都不会返回任何值,因为您只是请求它开始更新
您需要执行以下操作:
1) 在appdelegate.m中将appdelegate类声明为CLLocationManager的委托
self.locationManager = self;
2) 告诉您的appdelegate.h文件采用CLLocationManagerDelegate协议
@interface AppDelegate : UIResponder <UIApplicationDelegate, CLLocationManagerDelegate>
4) 获取您在刚刚实现的方法中查找的位置。:)
我建议您看看Apple提供的,因为您使用的是C风格的解引用操作符。我怀疑您是Objective-C语言的新手。您是否检查了设置中的权限?
您应该期望该位置在委托方法中传递给您。在用户已访问之后。否则,我不确定经理是否会在现场找到位置。您还需要启用这些服务
if([CLLocationManager resolveClassMethod:@selector(locationServicesEnabled)]) {
[CLLocationManager locationServicesEnabled];
}
出于好奇,为什么要使用解引用运算符(->)而不仅仅是点语法?我不能在没有CLLocationManagerDelegate的情况下获取纬度和经度值吗?这是可能的,但不推荐使用,因为这将需要很多秒,如文档中所述。强烈建议使用提供的委托方法,以便您知道CLLocationManager何时完成更新。
if([CLLocationManager resolveClassMethod:@selector(locationServicesEnabled)]) {
[CLLocationManager locationServicesEnabled];
}