iOS经典讲解之地图定位请求位置信息时出现的问题
2015-10-06 10:21
585 查看
地图定位请求位置信息在iOS8之后新增两个方法:
- (void)requestWhenInUseAuthorization
- (void)requestAlwaysAuthorization,
但是在使用这两个方法的时候需要手动在Info.plist文件加两个字段,
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
这两个字段没什么特别的意思,就是自定义提示用户授权使用地理定位功能时的提示语。
系统给出了说明:
示例图片如下:
这样添加代码就可以了:
接下来就可以获取位置信息了,出现如下提示,说明请求成功了:
- (void)requestWhenInUseAuthorization
- (void)requestAlwaysAuthorization,
但是在使用这两个方法的时候需要手动在Info.plist文件加两个字段,
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
这两个字段没什么特别的意思,就是自定义提示用户授权使用地理定位功能时的提示语。
系统给出了说明:
/* If the NSLocationWhenInUseUsageDescription key is not specified in your * Info.plist, this method will do nothing, as your app will be assumed not * to support WhenInUse authorization. */ - (void)requestWhenInUseAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0); /* If the NSLocationAlwaysUsageDescription key is not specified in your * Info.plist, this method will do nothing, as your app will be assumed not * to support Always authorization. */ - (void)requestAlwaysAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);
示例图片如下:
这样添加代码就可以了:
#import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController () <CLLocationManagerDelegate> @property (nonatomic, strong) CLLocationManager *locationManager; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 初始化 self.locationManager = [[CLLocationManager alloc] init]; // 设置代理 self.locationManager.delegate = self; // 定位精度 self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; // 设置多少米更新一次距离 self.locationManager.distanceFilter = 100; // 什么时候请求位置信息 注意: If the NSLocationAlwaysUsageDescription key is not specified in your Info.plist, this method will do nothing, as your app will be assumed not to support Always authorization. 需要设置plist文件添加NSLocationAlwaysUsageDescription为key即可 [self.locationManager requestAlwaysAuthorization]; // 开始请求位置信息 [self.locationManager startUpdatingLocation]; } #pragma mark -- 代理方法 //定位成功时代理方法 -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation *location = [locations firstObject]; NSLog(@"%@", location); } // 定位失败 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { // 错误信息描述 NSLog(@"%@", [error localizedDescription]); } @end
接下来就可以获取位置信息了,出现如下提示,说明请求成功了:
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 我的iPhone桌面
- 百度地图经纬度转换到腾讯地图/Google 对应的经纬度
- 三种检测iPhone/iPad设备方向的方法
- js实现iPhone界面风格的单选框和复选框按钮实例
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 在Google 地图上实现做的标记相连接
- .net平台推送ios消息的实现方法
- PHP计算百度地图两个GPS坐标之间距离的方法
- javascript实现根据iphone屏幕方向调用不同样式表的方法
- sogou地图API用法实例教程