在svn info -r HEAD
内我允许我的应用始终使用位置。在viewDidLoad中,我创建了一个每2秒调用一次方法的计时器:
Location Services
一开始我得到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()
答案 0 :(得分:0)
如何在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:-)