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)
}