前提・実現したいこと
前提
書籍「詳細!Swift iPhoneアプリ開発入門ノート: iOS 12+Xcode 10対応」でswiftを学んでいる初学者です。
現在チャプター19−8「モーションセンサーの測定値を調べる」を学んでいます。
書籍の通りに進めていましたが、一部でエラーが出ており、Fixを押したら解決しました。
ですが、なぜ解決できたのか未だにわかりません。
書籍のサンプルではエラーが出ずに問題ないのですが、書籍に沿って進めていた私のプロジェクトだとエラーが出ます。
実現したい事
ラベル名を挿入したらなぜ解決するのか、サンプルコードではラベル名が挿入されていないのにエラーが出ないのはなぜなのか?を知りたいです。
発生している問題・エラーメッセージ
swift
1Missing argument label 'motionData:' in call 2Insert 'motionData: '
motionData:を挿入すれば解決するとエラーが出ています。
該当のソースコード
swift
1//キューで実行するクロージャ 2 let handler:CMDeviceMotionHandler = {(motionData:CMDeviceMotion?, error:Error?) -> Void in 3 self.motionAnimation(motionData, error: error as NSError?) 4 }
試したこと
Fixの通りにラベル名を挿入したところエラーが解決しました。
self.motionAnimation(motionData: motionData, error: error as NSError?)
解決方法を調べたところ、下記のサイトが同様のエラーでの解決方法が記載されていました。
https://jpn.itlibra.com/article?id=21266
エラーを回避するにはラベル名を指定すればいいとのことですが、なぜラベル名を指定すれば解決されるのかが分かりません。
Fixでもラベル名を挿入すれば解決できると書かれていました。
書籍のサンプルはラベル名がなくともエラーになっていないのですが、これはバージョンの違いによるものでしょうか?
補足情報(FW/ツールのバージョンなど)
マシンの環境
macOS Catalina Version 10.15.3
Xcode Version 11.4
Swift version 5.1.3
書籍のバージョン
Xcode Version 10
Swift version 4.2
回答2件
あなたの回答
tips
プレビュー