런타임 함수
Objective-C
는 런타임에 의존하는 동적인 언어.
- 메세지 전달 구문이 컴파일 시 동적 라이브러리 함수들로 대체됨.
- 메세지 전달 시의 클래스 오브젝트 찾고, 메소드 구조체를 찾고, 메소드의 실제 주소를 찾는 과정들을 다 런타임 함수가 수행함.
- 런타임 함수를 직접 호출하여 똑같은 작업을 손수 할 수도 있음.
- 직접 찾아가서 함수 구현 주소를 바꾸면됨.
메세지 전달
isa
변수로 클래스 오브젝트를 찾음.
디스패치 테이블
을 보고 메세지에 대응하는 함수 구조체가 있는가?
- 있다면
구조체
를 참조하여 실행함.
