我正在构建一个iPhone应用程序来显示当前的太阳时——一天中的时间基于您实际位置天空中太阳的位置,而不是您所在的时区。为此,我需要知道经度。
我显然需要创建并使用 CLLocationManager 实例。我在网上找到的所有示例都假设使用 UIKit,并在作为 CLLocationManagerDelegate 的视图控制器中包含一些初始化和事件处理代码。这明显取决于 UIViewController。
也许可以混合 UIKit 和 SwiftUI,如果是这样,那可能会解决我的问题。但我不知道,我的Google fu也没有找到相关的例子。
有谁知道如何在 SwiftUI 中创建一个使用 CLLocationManager 实例和适当委托的新类?最棒的是:有没有使用 SwiftUI 的玩具“我在哪里”应用程序的示例代码,我可以滑动?
我尝试在我的应用程序中设置一个类来管理位置信息:
class SMCLocation {
var longitude: Double
var latitude: Double
var valid: Bool = false
private var lm = CLLocationManager()
init() {
lm.delegate = self
}
private func start() -> Void {
}
}
Swift 编译器不喜欢这一点,并在 init 函数中的
lm.delegate = self
语句中抱怨,
Cannot assign value of type 'SMCLocation' to type '(any CLLocationManagerDelegate)?'
Add missing conformance to 'CLLocationManagerDelegate' to class 'SMCLocation'
我不知道这样的一致性是什么,或者如何将其添加到我的类中。
您缺少像错误所示的一致性
class SMCLocation: NSObject, CLLocationManagerDelegate {