【发布时间】:2019-09-15 13:35:05
【问题描述】:
我创建了一个类来使用 CLLocationManagerDelegate 为我的 SwiftUI 应用程序获取当前标题,但出现 Property 'self.heading' not initialized at super.init call 错误。我不知道为什么。我认为我不需要指定参数,因为我的类在调用过程中不带任何参数?
我的 LocationManager 类:
class LocationManager: NSObject, CLLocationManagerDelegate, ObservableObject {
var locationManager: CLLocationManager?
var objectWillChange = PassthroughSubject<Void, Never>()
@Published var heading: Double {
willSet {
objectWillChange.send()
}
}
override init() {
super.init()
locationManager = CLLocationManager()
locationManager!.delegate = self
locationManager!.desiredAccuracy = kCLLocationAccuracyBest
locationManager!.requestWhenInUseAuthorization()
}
func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
self.heading = newHeading.trueHeading.degreesToRadians
}
}
【问题讨论】:
标签: swift cllocationmanager swiftui