대략 설명

프로그램을 하게되면 어디선가 값을가져온다든지 

다른 지역 상황발생으로 발생한 에벤트또는 값을받아 수동적으로 작동해야하는경우

현재의 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 는 안보인다 생각하고 무시하고 코드를 이해하면 쉬움