대략 설명
프로그램을 하게되면 어디선가 값을가져온다든지
다른 지역 상황발생으로 발생한 에벤트또는 값을받아 수동적으로 작동해야하는경우
현재의 class 또는 ViewController 동작중에
다른 class 또는 ViewController 에서 어떤 값을 주면서 현재클래스에영향을 주는(가져와서 )
함수등에 사용할때가 많은데 이때 사용된다 .(실제는 프로토콜인데 델리게이트라 부른다)
어떤 값을 가져오기위해서 code 가 좀 쓸데 없이 꼬여 있는것처럼 보인다
Class1 에서
protocol 에 processCompleted 함수지정 과
Class 에 id delegate 만들고
Class 함수에 [delegate processCompleted] 선언한다
Class2 에서
[Class1 setDelegate:self]; self 해주면 Class1 protocol 에 processCompleted 함수 를 통해
Class2 에있는 processCompleted 를 실행 하게된다.
데모에서는 없지만 Class1에서 발생한 변수 특정값등을 적용하여 Class2에서 processCompleted 를실행할수있게된다 (주된 목적)
https://www.tutorialspoint.com/objective_c/objective_c_protocols.htm
에 Live Demo 를 눌러서 코드를 직접 조금씩 바꿔보면 이해된다.
왜이리 비비꼬아 놓았는가를 알수있다
추가로 NS 는 안보인다 생각하고 무시하고 코드를 이해하면 쉬움