为啥我的“允许位置访问”在我打开时总是关闭?
Posted
技术标签:
【中文标题】为啥我的“允许位置访问”在我打开时总是关闭?【英文标题】:Why my "Allow Location Access" is always turned off when I switch it to on?为什么我的“允许位置访问”在我打开时总是关闭? 【发布时间】:2015-05-28 11:05:42 【问题描述】:在Location Services
内部,我允许我的应用始终使用位置信息。在 viewDidLoad 我创建了一个计时器,它每 2 秒调用一次我的方法:
println("---\(locationManager.location)")
一开始我收到---nil
,但是当我转到设置并将访问权限更改为始终,然后再次返回应用程序时,我立即收到:
---<+50.06689474,+19.92923662> +/- 165.00m (speed -1.00 mps / course -1.00) @ 28.05.2015, 13:00:39 Czas środkowoeuropejski letni
但是一旦打印出来,仍然是:---nil
。为什么?
这就是我设置locationManager
的方式:
private let locationManager = CLLocationManager()
在viewDidLoad()
我调用方法:
private func setupLocationManager()
locationManager.delegate = self
locationManager.distanceFilter = kCLDistanceFilterNone
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: Selector("printLocation"), userInfo: nil, repeats: true)
【问题讨论】:
你能给我们看一些代码吗? @donmarkusi 我用一些代码更新了问题 通常你使用CLLocationManagerDelegate
:developer.apple.com/library/mac/documentation/CoreLocation/…:
是的,我知道,我实现了这个,但是没有调用delegate的方法...
从这里很难分辨。尝试调试您的代码,看看位置管理器是否被释放或什么...***.com/questions/11697730/…
【参考方案1】:
在 Swift 中如何以最简单的方式实现 CoreLocation 框架的答案是:
import CoreLocation
使用时在文件中
将框架添加到将二进制文件与库链接:
设置private let locationManager = CLLocationManager()
并使用方法实现CLLocationManagerDelegate
:
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus)
if status == .AuthorizedAlways || status == .AuthorizedWhenInUse
locationManager.startUpdatingLocation()
在viewDidLoad
中设置您的locationManager
属性:
private func setupLocationManager()
locationManager.delegate = self
locationManager.distanceFilter = kCLDistanceFilterNone
locationManager.desiredAccuracy = kCLLocationAccuracyBest
if CLLocationManager.locationServicesEnabled()
locationManager.startUpdatingLocation()
if CLLocationManager.authorizationStatus() == .NotDetermined
locationManager.requestAlwaysAuthorization()
最重要!!!! 使用键 NSLocationAlwaysUsageDescription
和示例值设置您的 info.plist 文件:Turn on your location, we need it:-)
【讨论】:
以上是关于为啥我的“允许位置访问”在我打开时总是关闭?的主要内容,如果未能解决你的问题,请参考以下文章