메세지 전달 복습

요약
Tags

런타임 함수

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

메세지 전달

  • isa 변수로 클래스 오브젝트를 찾음.
  • 디스패치 테이블을 보고 메세지에 대응하는 함수 구조체가 있는가?
  • 있다면 구조체를 참조하여 실행함.
notion image