CLLocationManagerDelegate 方法不适用于 Apple Watch 扩展
CLLocationManagerDelegate method not working on apple watch extension
我正在开发 Apple Watch 应用来检索用户位置。我已经将 CoreLocation 框架导入 interfacecontroller class 并向 class 添加了委托。这是行不通的。请检查下面的代码。我错过了什么?
import Foundation
import WatchKit
import CoreLocation
class NearByController: WKInterfaceController, CLLocationManagerDelegate {
override func awakeWithContext(context: AnyObject?) {
var locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.startUpdatingLocation()
}
}
// MARK: CLLocationManagerDelegate
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
println("Retrieved location")
}
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
println(error)
}
似乎我需要将 CLLocationManager 初始化为 class 属性而不是内部方法。这是我的答案。现在正在运行。
import Foundation
import WatchKit
import CoreLocation
class NearByController: WKInterfaceController, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
override func awakeWithContext(context: AnyObject?) {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.startUpdatingLocation()
}
}
// MARK: CLLocationManagerDelegate
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
locationManager.stopUpdatingLocation()
println(locations)
}
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
println(error)
}
我正在开发 Apple Watch 应用来检索用户位置。我已经将 CoreLocation 框架导入 interfacecontroller class 并向 class 添加了委托。这是行不通的。请检查下面的代码。我错过了什么?
import Foundation
import WatchKit
import CoreLocation
class NearByController: WKInterfaceController, CLLocationManagerDelegate {
override func awakeWithContext(context: AnyObject?) {
var locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.startUpdatingLocation()
}
}
// MARK: CLLocationManagerDelegate
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
println("Retrieved location")
}
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
println(error)
}
似乎我需要将 CLLocationManager 初始化为 class 属性而不是内部方法。这是我的答案。现在正在运行。
import Foundation
import WatchKit
import CoreLocation
class NearByController: WKInterfaceController, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
override func awakeWithContext(context: AnyObject?) {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.startUpdatingLocation()
}
}
// MARK: CLLocationManagerDelegate
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
locationManager.stopUpdatingLocation()
println(locations)
}
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
println(error)
}