swiftでモーションセンサーの値を取得する方法でエラーになるのを解決した
こんにちは!yatsureです。
20170301くらいの話なんですけどね?
モーションセンサーの値が取得できない
というトラブルに見舞われたんですよ。
加速度とかジャイロスコープ、姿勢の測定値とかです。
それを書籍や他サイトを参考にコードを書いたんですが、エラーを景気良くゲロゲロしまくるxcode。
先にトラブルの解決方法をお伝えします。
変数handlerを作る時に問題がありました。
let handler: CMDeviceMotionHandler = {
(motionData: CMDeviceMotion?, error:NSError?) -> Void in
self.motionAnimation(motionData, error: error as Error? as NSError?)
}
こんな感じの定型文を使っている方、ご注意ください。
これ、正しくは
let handler: CMDeviceMotionHandler = {
(motionData: CMDeviceMotion?, error:Error?) -> Void in
self.motionAnimation(motionData, error: error as Error? as NSError?)
}
です。
swift3の本を読んでも、最近の記事を読んでも、上の方の様に書いてあるのでやってみるとエラー。。。
as!をつけて型を変えろ的なエラーが出るので、従ってやってると結局ダメという誠にfu●ckな状況に。
いよいよ困って、藁にもすがる勢いで英語成績2▲の私はappleのリファレンス?をgoogle翻訳して読みました。すると
(motionData: CMDeviceMotion?, error:NSError?) -> Void in
が
(motionData: CMDeviceMotion?, error:Error?) -> Void in
って書いてある事に気がつき、
「おいおい冗談だろマイケル?」
と半笑いでNSを消したところ動作しました♨︎
モーションセンサーの値を取得する元々のやり方については、他のサイトや書籍を参考にしてください(・∀・)