[英]How to use CoreMotion in WatchKit?
我對這個問題的標題措詞非常懷疑,但我認為這就是重點。
我一直在想剛才讀的WatchKit的CoreMotion數據,但事實證明,我不能讓startDeviceMotionUpdatesToQueue
工作,我的處理程序不會被調用。
我嘗試在自定義后台線程( NSOperationQueue()
)中運行,但還是沒有運氣。
我在真正的Apple Watch上調試,而不是在模擬器上調試。
在我的WKInterfaceController
:
let manager = CMMotionManager()
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
let communicator = SessionDelegate()
manager.deviceMotionUpdateInterval = 1 / 60
manager.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue()) {
(motionerOp: CMDeviceMotion?, errorOp: NSError?) -> Void in
print("got into handler")
guard let motion = motionerOp else {
if let error = errorOp {
print(error.localizedDescription)
}
assertionFailure()
return
}
print("passed guard")
let roll = motion.attitude.roll
let pitch = motion.attitude.pitch
let yaw = motion.attitude.yaw
let attitudeToSend = ["roll": roll, "pitch": pitch, "yaw": yaw]
communicator.send(attitudeToSend)
}
print("normal stack")
}
輸出是
normal stack
normal stack
(是的,兩次!我也不知道為什么會這樣,但這不是重點,一定是我做錯了另一件事)
我將其發布在這里,因為我不知道在哪里看,這簡直太瘋狂了。
startDeviceMotionUpdatesToQueue
中尚不提供Device Motion( startDeviceMotionUpdatesToQueue
)( deviceMotionAvailable
返回false),加速計可能可以幫助您startAccelerometerUpdatesToQueue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.