swift言語のAVAudioPlayerの使い方が分かりません.
1つ目のコードではAVAudioPlayerのインスタンスを生成した後に,音楽ファイルを指定しています.
しかし,AVAudioPlayerはイニシャライザとして「contentsOf:」を設けているので,インスタンス生成時に引数を渡す必要があると認識しています.
ど素人が,クラスが引数付きのイニシャライザを宣言しているにも関わらず,引数なしでインスタンスを生成した後に,引数ありのインスタンスを代入する
という観点からみれば2つ目のコードと同じことをしているのではないかと思ってしまうのですが,もちろん間違っていることはわかります.
では,なぜ1つ目のコードにあるように,AVAudioPlayerは,引数付きのイニシャライザを宣言しているにも関わらず,引数なしのインスタンスを生成できる
のでしょか
プログラミング初心者の自分でもわかるよう教えていただけると助かります.
swift
1import UIKit 2import AVFoundation 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 } 9 10 override func didReceiveMemoryWarning() { 11 super.didReceiveMemoryWarning() 12 } 13 14 let cymbalPath = Bundle.main.bundleURL.appendingPathComponent("cymbal.mp3") 15 16 //////////ここでインスタンスを生成////////// 17 var cymbalPlayer = AVAudioPlayer() 18 19 @IBAction func cymbal(_ sender: Any) { 20 do { 21 //////////ここでイニシャライザを指定////////// 22 cymbalPlayer = try AVAudioPlayer(contentsOf: cymbalPath, fileTypeHint: nil) 23 24 cymbalPlayer.play() 25 } catch { 26 print("error") 27 } 28 } 29}
swift
1class A { 2 init(string: String){ 3 } 4} 5 6var a = A() 7a = A(string: "~~~")
環境
xcode:10
swift:4.2
言葉足らずでしたらご指摘ください.
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/18 07:00 編集
2019/05/18 11:05