iPhoneアプリ開発講座の音楽アプリ作成中のことです。
初歩的な質問となりますがご回答いただけたら幸いです。
「AVAudioPlayer」クラスの変数に「inout」が指定されているのは、引数として受け取り、最後に戻り値としてこの変数を戻すという説明でした。
ですが、なぜ「inout」を使用して戻り値として戻してあげないといけないのか、また戻り先がどこであるかわからないことが一つ。
2つ目は「soundPlayer」の第一引数「&backmusicPlayer」が参照渡しでありことはわかりました。
ですが、なぜ参照渡しでなければならないのでしょうか。
仮に値渡しであった場合は何ができなくなってしまうのでしょうか。
swift
1 let backmusicPath = Bundle.main.bundleURL.appendingPathComponent("backmusic.mp3") 2 3 var backmusicPlayer = AVAudioPlayer() 4 5 @IBAction func play(_ sender: Any) { 6 7 soundPlayer(player: &backmusicPlayer, path: backmusicPath, count: -1) 8 9 } 10 11 fileprivate func soundPlayer(player: inout AVAudioPlayer, path: URL, count: Int) { 12 13 do { 14 15 player = try AVAudioPlayer(contentsOf: path, fileTypeHint: nil) 16 player.numberOfLoops = count 17 player.play() 18 19 } catch { 20 21 print("エラーが発生しました") 22 23 } 24 } 25
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/13 23:20
2020/04/13 23:49
2020/04/14 13:26