当前位置: 首页 > 面试题库 >

CLLocationManager授权问题iOS 8

万俟心思
2023-03-14
问题内容

我正在为iOS 8开发一个Swift代码。我正在尝试做一些涉及位置的事情,因此我在swift视图控制器文件中实现了以下内容:

let locationManger:CLLocationManager = CLLocationManager()

var speedReceived:Double = 0

override func viewDidLoad() {
    super.viewDidLoad()
    locationManger.delegate = self
    locationManger.desiredAccuracy = kCLLocationAccuracyBest
    let authstate = CLLocationManager.authorizationStatus()
    if(authstate == CLAuthorizationStatus.NotDetermined){
       println("Not Authorised")  
      locationManger.requestWhenInUseAuthorization()
    }
    // Do any additional html" target="_blank">setup after loading the view, typically from a nib.
}

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){
    var location:CLLocation = locations[locations.count - 1] as CLLocation
    if(location.horizontalAccuracy > 0){
        self.speedReceived = location.speed
        println(self.speedReceived)
    }
}

func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
   println("Couldn't get your location")
}

但是,我似乎无法使此代码正常工作。它不会保存我对位置使用的偏好。它甚至不提示我允许访问位置。我尝试更新我的info.plist。但这不起作用。顺便说一句,如果我始终在模拟器的隐私设置中选择,那么如果我立即切换回该应用程序,它将起作用。有人可以帮忙吗?我确定那是问题所在,因为我在控制台上获得了未授权。

有什么帮助吗?


问题答案:

这是与iOS
8相关的问题。您必须在文件中放入NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription.plist(值可能是附加消息,将在位置警报中显示)。这些键在iOS
8中是必需的。

在Apple准则中怎么说:

当您使用CLLocationManager类的requestAlwaysAuthorization方法请求位置服务的授权时,此密钥是必需的。如果此密钥不存在,并且您调用了requestAlwaysAuthorization方法,则系统将忽略您的请求并阻止您的应用使用位置服务。



 类似资料:
  • 我试图用Github Api做一个授权请求,传递用户名和密码。但它不起作用,我得到了401状态代码。 文件里有一部分说 这是我的密码:

  • 在spotify api的授权步骤中,我完全迷失了方向 我需要提出一个类似于邮递员的请求: 具有包含client_id和client_secret(api 凭据)的标头 这些是根据授权流完成的(在他们的授权指南中的第四个-(隐式授权流(客户凭证流))本页最后一个:https://developer.spotify.com/documentation/general/guides/authoriza

  • 我想从我的android应用程序中读取来自Google Sheets的表格。我想通过Google Sheets API来做到这一点。我将工作表声明为公共,创建了API密钥并尝试发送服务调用: 我有401密码。答复: 请求缺少必需的身份验证凭据。需要OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。看见https://developers.google.com/identity/si

  • 我正在用Spring MVC构建一个CRM系统。现在我为系统添加了REST支持,但是Spring Security出于某种原因将允许角色为“employee”的未经授权的用户访问POST方法(在系统中创建一个新客户)。在表单和身份验证方面,一切都能正常工作。只是由于某种原因授权失败,特别是对于RESTController。 我使用PostgreSQL存储客户和用户,并进行身份验证。 注意:我使用“

  • 问题内容: 我尝试了多种安装mySql的方法,然后通过全新安装访问数据库。操作系统为RHEL7。使用的软件包为mysql-5.7.7-0.3.rc.el7.x86_64.rpm- bundle.tar 然后我启动服务器 在此之后,我尝试不使用root用户密码访问服务器。我收到以下错误消息: 由于我尚未设置任何密码,因此不太确定为什么会出现此错误。在此之后,我尝试了各种选择,并且可以为我提供帮助。

  • 尝试使用EWS连接到exchange 2010 SP1 它连接到我的本地邮箱,而不是“测试邮箱”。我从我们的管理员那里获得了TestMailbox NT帐户的密码,并尝试了以下所有方法: 所有这些都失败了。假设我在本地网络上的NT用户名是“用户”,我甚至尝试过: 它失败了。我一直在使用以下链接作为参考。 编辑1:我已经尝试了以上所有与网络信用而不是网络信用,它仍然失败。