//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄
在做一个系统定位功能时,需要先请求用户的GPS授权,代码如下
[objc]view plaincopy
// 创建CLLocationManager对象并设置代理
CLLocationManager*locationM = [[CLLocationManageralloc]init];
locationM.delegate=self;
// 每隔多少米定位一次
// locationM.distanceFilter = 100;
// 设置定位精确度
locationM.desiredAccuracy= kCLLocationAccuracyKilometer;
// 请求前台定位授权, 并在Info.Plist文件中配置Key ( Nslocationwheninuseusagedescription )
[locationMrequestWhenInUseAuthorization];
但是这段代码有个问题,弹出的授权GPS提示框在弹出一秒钟后,又自己消失了,用户没法在如此短时间内进行确认。
找不到原因,猜测这个弹出框的生命周期是否跟 locationM这个局部变量一样,在代码执行完之后就释放掉。
然后把locationM换成属性来使用,问题果然解决了,感觉这又是一个坑。
代码如下:
[objc]view plaincopy
// 创建CLLocationManager对象并设置代理
self.locationM= [[CLLocationManageralloc]init];
self.locationM.delegate=self;
// 每隔多少米定位一次
// self.locationM.distanceFilter = 100;
// 设置定位精确度
self.locationM.desiredAccuracy= kCLLocationAccuracyKilometer;
// 请求前台定位授权, 并在Info.Plist文件中配置Key ( Nslocationwheninuseusagedescription )
[self.locationMrequestWhenInUseAuthorization];