定位的话要导入#import
import “ViewController.h”
import
import
pragma mark - 懒加载
//- (CLLocationManager *)mgr
//{
// if (!_mgr) {
// _mgr = [[CLLocationManager alloc] init];
// }
// return _mgr;
//}
/**
* 授权状态发生改变时调用
*
* @param manager 触发事件的对象
* @param status 当前授权的状态
*/
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
/*
用户从未选择过权限
kCLAuthorizationStatusNotDetermined
无法使用定位服务,该状态用户无法改变
kCLAuthorizationStatusRestricted
用户拒绝该应用使用定位服务,或是定位服务总开关处于关闭状态
kCLAuthorizationStatusDenied
已经授权(废弃)
kCLAuthorizationStatusAuthorized
用户允许该程序无论何时都可以使用地理信息
kCLAuthorizationStatusAuthorizedAlways
用户同意程序在可见时使用地理位置
kCLAuthorizationStatusAuthorizedWhenInUse
*/
if (status == kCLAuthorizationStatusNotDetermined) {
NSLog(@"等待用户授权");
}else if (status == kCLAuthorizationStatusAuthorizedAlways ||
status == kCLAuthorizationStatusAuthorizedWhenInUse)
{
NSLog(@"授权成功");
// 开始定位
[self.manager startUpdatingLocation];
}else
{
NSLog(@"授权失败");
}
}
@end
里面加了很多的注释看着会有点乱,不过重要的方法也就那几个
还有一点,别管是真机还是模拟器,运行程序的时候你想定位都需要将“设置”中“隐私”里面对应的app的定位设置成always;