###前提・実現したいこと
「これからつくるiPhoneアプリ開発入門」という参考書を元に楽器アプリを作成しています。
###発生している問題・エラーメッセージ
(エラーメッセージは出ないのですが)楽器ボタンを押した時に音が鳴らずどうしてもデバッグエリアにcatchに入力した"エラーが発生しました"が出てしまいます。音は一切なりません。
なんども確認したので参考書どおりに入力していると思います。
###該当のソースコード
Swift
1// 2// ViewController.swift 3// MyMusic 4// 5// Created by ●● on 2017/10/14. 6// Copyright © 2017年 ●●. All rights reserved. 7// 8 9import UIKit 10import AVFoundation 11 12class ViewController: UIViewController { 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 // Do any additional setup after loading the view, typically from a nib. 17 } 18 19 override func didReceiveMemoryWarning() { 20 super.didReceiveMemoryWarning() 21 // Dispose of any resources that can be recreated. 22 } 23 24 25 //シンバルの音源ファイルを指定 26 let cymbalPath = Bundle.main.bundleURL.appendingPathComponent( 27 "cymbal.mp3") 28 29 //シンバル用のプレイヤーインスタンスを作成 30 var cymbalPlayer = AVAudioPlayer() 31 32 @IBAction func cymbal(_ sender: Any) { 33 do{ 34 //シンバル用のプレイヤーに、音源ファイルを指定 35 cymbalPlayer = try AVAudioPlayer(contentsOf: cymbalPath, fileTypeHint:nil) 36 cymbalPlayer.play() 37 }catch{ 38 print("シンバルでエラーが発生しました!") 39 } 40 41 } 42} 43 44
###試したこと
・参考書に書いてあるコード通りに入力しているか確かめた
・一度音源ファイルを削除して再度コピペした
・クリーンを実行してみた
###補足情報(言語/FW/ツール等のバージョンなど)
cymbal.mp3はプロジェクトに追加されているでしょうか?
はい。ナビゲーターエリアにドラッグ&ドロップしました
ファイル名は間違ってないでしょうか?また、Target Membershipにチェックは入っているでしょうか?
ファイル名は数字を全角にしても試しましたが実行結果は変わりませんでした。ナビゲーターエリアからcymbalのファイルをクリックしユーティリティエリアにあったTarget Membershipにチェックを入れたのですがlet cymbalPath = Bundle.main.bundleURL.appendingPathComponent( "cymbal.mp3")の行の右にThread 1: breakpoint 1.5と表示され、実行したところ(11db)と表示され画面も表示されなくなってしまいました。
ajaさんも書かれていますが、ブレークポイントが設定されているだけだと思いますので、左端の青い矢印みたいなのを削除して下さい。右クリックでDeleteか、左ドラッグで削除できます。
ブレークポイント(?)は削除できましたありがとうございます。そしてもう一度参考書通りに最初からやってみたのですがやはりcatchの中のエラーが発生しましたというメッセージが表示されました。しかしその後fuzzballさんがおっしゃったようにTarget Membershipにチェックをつけたところ音がなりました!ありがとうございます!
回答2件
あなたの回答
tips
プレビュー