2017-09-25 15 views
0
class myClass: AVAudioPlayerDelegate{ 
    var player = AVAudioPlayer() 

    init(){ 
     player.delegate = self 
    } 

    func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { 
      print("The song ended") 
    } 
} 

私はSwiftを勉強していて、音楽を再生しようとしています。 AVAudioPlayerオブジェクトがというPlayerというプロパティを持つカスタムクラスがあります。 プレーヤーオブジェクトでAVAudioPlayerDelegateメソッドを使用するにはどうすればよいですか? NSObjectのからSwift AVAudioPlayerを継承しないクラスでAVAudioPlayerDelegateを使用するにはどうすればよいですか?

The type myClass does not conform to the protocol NSObjectProtocol

+0

の可能性のある重複した[クラスが適合していないNSObjectProtocol](https://stackoverflow.com/questions/40705591/class-does-not-conform-nsobjectprotocol) –

答えて

1

継承:このようなコードを有する場合には

私はエラーを取得します。

class myClass: NSObject, AVAudioPlayerDelegate { 
    var player = AVAudioPlayer() 

    init(){ 
     player.delegate = self 
    } 

    func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { 
      print("The song ended") 
    } 
} 
+0

私はplayer.delegateにEXC_BAD_ACCESSクラッシュを取得=自己ライン – Adam

+1

まあ、私は完全に異なる質問だと思います。別の質問でそれを聞いてください。私は助けることはできません、申し訳ありません。私の推測では、AVAudioPlayerには、デリゲートなどを設定する前に再生するファイルなどが必要です。私は試しました プレーヤー=試して? AVAudioPlayer.init(data:Data.init())これでクラッシュすることはありません。私の推測は正しい。有効なデータを処理に追加し、エラーは発生しません。 –

+0

問題が解決した場合は、回答を受け入れることを検討してください。 –

関連する問題