2017-09-25 13 views
0

나는 스위프트를 배우며 음악 재생 앱을 만들려고 노력하고 있습니다. AVAudioPlayer 객체가 플레이어 인이라는 속성이있는 사용자 정의 클래스가 있습니다. 플레이어 개체와 함께 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 충돌을 얻을 = self line – Adam

+1

글쎄, 그건 완전히 다른 질문 인 것 같아. 다른 질문으로 질문하십시오. 나는 도울 수 없다. 미안하다. 내 생각 엔 AVAudioPlayer는 델리게이트를 설정하기 전에 재생할 파일이나 뭔가가 필요합니다. 나는 시도했다 player = try? AVAudioPlayer.init (data : Data.init()) 이제 충돌이 발생하지 않습니다. 내 추측은 옳았다. 유효한 데이터를 프로세스에 추가하면 오류가 발생하지 않습니다. –

+0

문제가 해결되면 대답을 수락하십시오. –