

sample.mp3というデータを再生しようとするときに「引数が足りない」というエラーがでてしまいます。もしご存知の方は、ご指摘いただけますようお願いします。

[code]

    override func viewDidLoad() {
        super.viewDidLoad()
    
        let sound_data = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sample", ofType: "mp3")!)
        var audioPlayer: AVAudioPlayer = AVAudioPlayer(contentsOfURL: sound_data, error: nil)//ここでエラーがでてしまいます。
        audioPlayer.play()
    }
    
[/code]


CC BY-SA 3.0
2015-10-03T09:36:44.243
17215
2017-01-04T03:29:44.153
12536
question
swift
音声再生時のエラー


Swift 2から`try`, `catch`, `throw`という新しい構文が導入され、エラー処理の仕組みが大きく変わりました。

<https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html#//apple_ref/doc/uid/TP40014097-CH42-ID508>

同時に`NSError`のダブルポインタを取るメソッドは自動的に`throws`に変換されるようになったので、`NSError`の引数は無くなりました。変わりに、`try`を付けてメソッドを呼び出す必要があります。

[code]

    let sound_data = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sample", ofType: "mp3")!)
    do {
        let audioPlayer = try AVAudioPlayer(contentsOfURL: sound_data)
        audioPlayer.play()
    } catch let error as NSError {
        print(error)
    }
    
[/code]


CC BY-SA 3.0
2015-10-03T18:35:26.493
17231
2015-10-04T06:53:10.240
2015-10-04T06:53:10.240
7362
5519
17215
answer