【问题标题】:Not ask permission to access to coreLocation and crash in swift不请求访问 coreLocation 的权限并在 swift 中崩溃
【发布时间】:2014-08-06 19:11:49
【问题描述】:

我的 Swift 应用中有 CoreLocation。当我在模拟器或设备中运行此程序时,此崩溃并且不显示访问 CoreLocation 的权限。我拥有实现此操作所需的所有代码:代码中的请求、NSLocationWhenInUseUsageDescription 或 plist 中的 NSLocationAlwaysUsageDescription... 我正在阅读iOS app doesn't ask for location permission,但我无法制作这个节目。

 var location: CLLocationManager!
let status = CLLocationManager.authorizationStatus()
  location=CLLocationManager()
  if(status == CLAuthorizationStatus.NotDetermined) {
        self.location.requestAlwaysAuthorization();
    }
    else {
        location.startUpdatingLocation()
    }
    location.delegate = self
    location.desiredAccuracy=kCLLocationAccuracyBest 
    self.location.startMonitoringSignificantLocationChanges()

    print(location.location.coordinate.latitude) //Here crash
    print(location.location.coordinate.longitude)

我还能做些什么来展示这个?

谢谢!

【问题讨论】:

    标签: swift core-location xcode6


    【解决方案1】:

    这是我的应用程序中的代码 sn-p:

        let locationManager = CLLocationManager()
        ...
        locationManager.delegate = self
        locationManager.activityType = CLActivityType.Fitness
        locationManager.distanceFilter = 10   // 10m
    
        if ( UIDevice.currentDevice().systemVersion == "8.0" ) {
            locationManager.requestAlwaysAuthorization()
        }
    
        // get current location
        if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.Authorized {
            locationManager.startUpdatingLocation()
        }
    

    【讨论】:

      【解决方案2】:

      该提示仅在状态为 .NotDetermined 时显示。当提示未显示时,还有其他状态会阻止位置服务工作(除了 .Authorized 之外的所有状态)。你应该检查这些。

      另外,requestAlwaysAuthorization 不会立即返回,您需要实现

      func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) 
      

      【讨论】:

        【解决方案3】:

        您必须在info.plist 文件中添加一行

        NSLocationWhenInUseUsageDescription 包含一个字符串。

        当弹出警报询问用户许可时,将显示该字符串。

        【讨论】:

          猜你喜欢
          • 2012-06-30
          • 1970-01-01
          • 2016-10-12
          • 1970-01-01
          • 2019-04-17
          • 2017-07-05
          • 1970-01-01
          • 2019-04-24
          • 2016-12-22
          相关资源
          最近更新 更多