Home swift dynamic
Post
Cancel

swift dynamic

dynamic

objc

  • 메세지 호출(메세지 디스패치)
  • 메서드를 호출 하거나 프로퍼티를 참조하는 것
  • objc 런타임의 동적 바인딩 속성과 관련
  • 호출자가 “메서드 f를 실행” 메세지를 객체에 전송하면
  • 객체는 구현체를 찾아 실행하게 됨
  • 여기서 메서드를 찾는다 는 것이 중요
  • 정적 디스패치의 경우 실행될 구현코드가 고정되어 있음
  • 동적 디스패치의 경우 구현코드를 바꿔치기 할 수 있음
  • 이런 기법을 메서드 스위즐링(swizzling)이라 부름

swift

  • dynamic 키워드는 함수나 변수의 선언문에 적용
  • 정적 디스패치 대신 동적 디스패치 를 사용하도록 함
  • dynamic을 쓰면 자동으로 @objc 어트리뷰트를 추가하게 됨
  • dynamic 키워드가 적용된 것은 swift 런타임 대신, objc 런타임을 사용하여 메세지 전송

사용 용도

  • 앱 분석을 위한 코드를 동적으로 삽입할 때
  • KVC/KVO에 의존적인 Core Data와 같은 objc 런타임과 효율적인 연동 가능
  • Objc 에서 오랫동안 사용하던 것들을 swift에 그대로 사용하고 싶을 때 사용

출처: https://outofbedlam.github.io/swift/2016/01/27/Swift-dynamic/

This post is licensed under CC BY 4.0 by the author.

-

iOS zPosition