ios地理定位请求窗口一闪而过?
import UIKit
import CoreLocation;
class UserLocation: NSObject {
var userPosition: CLLocationCoordinate2D?
let manager = CLLocationManager()
/// 获取用户位置授权,定位用户当前坐标
func startUserlocation() {
manager.delegate = self;
manager.desiredAccuracy = kCLLocationAccuracyBest; //设置精确度
manager.distanceFilter = 50 ; //重新定位变化距离
if #available(iOS 8, *) { //ios8 或更高
print("request");
//manager.requestWhenInUseAuthorization(); //当app进入前台开始定位
manager.requestAlwaysAuthorization(); //请求始终进行定位
}
if !CLLocationManager.locationServicesEnabled() {
print("设备没开启定位");return;
}
manager.startUpdatingLocation(); //开始定位
print("start");
}
}
extension UserLocation: CLLocationManagerDelegate {
// 地理位置更新
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print(locations)
if(locations.count <= 0 ){
return;
}
print("定位定位")
let userPos = locations.last! as CLLocation //获得最新一次定位信息
userPosition = userPos.coordinate
manager.stopUpdatingLocation()
}
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
print(status);
}
//定位失败
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
print(error);
}
}
如上:
写了一个location类,然后再界面上点击一个按钮触发定位:
func richScan(){
var test = UserLocation();
test.startUserlocation();
}
但是弹出请求权限接口后 一闪而过,根本来不及点。这是什么情况。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
test
被 释放了,arc 的问题,设置一个成员变量强引用,如:self.test = UserLocation();
楼上正解。
把UserLocation写成单例好像也能解决问题。
没解决这问题的 请看这篇文章http://www.cnblogs.com/huangzs/p/5334130... 还没解决的 私聊我