상세 컨텐츠

본문 제목

[iOS] 음악재생, 녹음하는앱(2) .delegate = self

SWIFT

by 옹홍 2021. 2. 10. 18:56

본문

언제나 헷갈리는 delegate 패턴이다. 

audioPlayer.delegate = self

viewController는 AVAudioPlayerDelegate, AVAudioRecorderDelegate라는 프로토콜을 상속받는다.

 

상속받을 때, 이 두 프로토콜의 필수 메소드를 정의해주어야 한다.

근데

audioPlayer.delegate = self 

audioRecorder.delegate = self는??

var audioPlayer: AVAudioPlayer

var audioRecorder: AVAudioRecorder! 이렇기 때문에 

내가 이해한 바로는 viewController에게 AVAudioPlayer에서 일어난 이벤트에 관련된 일을 하라는 것이다. 즉, 뷰컨 안에 저기 프로토콜의 메소드를 정의했으니, .delegate = self는 뷰컨 클래스 안에 정의된 메소드를 실행하라 는 뜻인것같다. 저게 없으면, 실행되지 않는다. 왜냐면 위임자를 viewcontroller라고 정해주지 않았기 때문에 모르지 않을까 싶다!

관련글 더보기

댓글 영역