とある書籍でサンプルコードを見ていたのですが、理解できないことがございます
環境>
xcode:11.3
version 5.1.3
Swift
1import UIKit 2import AVFoundation 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // Do any additional setup after loading the view. 9 } 10 //音源ファイルを指定 11 let cymbalPath = Bundle.main.bundleURL.appendingPathComponent("cymbal.mp3") 12 //インスタンスの作成 13 var cymbalPlayer = AVAudioPlayer() 14 15 16 @IBAction func cymbal(_ sender: Any) { 17 do { 18 cymbalPlayer = try AVAudioPlayer(contentsOf: cymbalPath, fileTypeHint:nil) 19 cymbalPlayer.play() 20 } catch { 21 print("エラーが発生しています") 22 } 23 24 } 25 26}
下記で例外処理する場合に、do cathc tryを使用する旨が示されているのですが、同時に一般的に以下の様な使用法が記されております。
Swift
1do { 2 try //メソッド呼び出し 3} catch { 4 //エラー処理 5}
とすると、不可解なのですが、
Swift
1cymbalPlayer = try AVAudioPlayer(contentsOf: cymbalPath, fileTypeHint:nil) 2cymbalPlayer.play()
はインスタンスのプロパティにpathなどを設定しているコードでありメソッドに対してtryしているわけではないため、もし上記の通り一般的な使用法に従うのであれば
Swift
1cymbalPlayer = AVAudioPlayer(contentsOf: cymbalPath, fileTypeHint:nil) 2try cymbalPlayer.play()
なのではないでしょうか?
他の言語(php等)でtryなどの処理する場合などでも 代入演算子の後にtryを持ってくるなど見たことがないのでそれ自体非常に違和感を感じるのですが、Swiftではどの様に考えれば良いのでしょうか?
よろしくお願い申しあげます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/19 04:06
2020/03/19 05:02
2020/03/19 06:50