问题描述
我正在尝试使用SwiftUI构建MVP,该MVP只是向我显示Apple Watch上的海拔变化。从那里,我将找出下一步的工作(我想将其用于滑翔伞和其他航空用品)。
我以前在python中有经验,但是在Swift中却没有,所以即使经过大量教程,我也不确定如何以及在哪里声明然后使用功能。
到目前为止,这是我的代码:
//
// ContentView.swift
// Altimeter WatchKit Extension
//
// Created by Luke Crouch on 29.09.20.
//
import SwiftUI
import CoreMotion
//class func isRelativeAltitudeAvailable() -> Bool
struct ContentView: View {
let motionManager = CMMotionManager()
let queue = OperationQueue()
let altimeter = CMAltimeter()
let altitude = 0
var relativeAltitude: NSNumber = 0
var body: some View {
if motionManager.isRelativeAltitudeAvailable() {
switch CMAltimeter.authorizationStatus() {
case .notDetermined: // Handle state before user prompt
fatalError("Awaiting user prompt...")
case .restricted: // Handle system-wide restriction
fatalError("Authorization restricted!")
case .denied: // Handle user denied state
fatalError("Auhtorization denied!")
case .authorized: // Ready to go!
print("Authorized!")
@unknown default:
fatalError("Unknown Authorization Status")
}
altimeter.startRelativeAltitudeUpdates(to: queue,withHandler: CMAltitudeHandler)
}
// something like relative Altitude = queue[..]
Text("\(relativeAltitude)")
.font(.largeTitle)
.fontWeight(.bold)
.foregroundColor(Color.green)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
我遇到了多个我不知道如何处理的错误:
- 类型'Void'不能符合'View',只有struct / enum / class类型可以符合协议。
- CMMotionManager类型的值没有成员'isRelativeAltitudeAvailable'
- 类型'()'不符合View ...
- 无法将类型'CMAltitudeHandler.Type'的值(aka'(((Optional,Optional)->())。Type')转换为预期的参数类型'CMAltitudeHandler'(aka'((Optional,Optional)->() ')
能给我一些提示吗?
非常感谢! 卢克
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)