KVO 내부 동작 완벽 정리, isa-swizzling의 정체
KVO는 옵저버를 붙이는 순간 런타임이 객체의 클래스를 동적 서브클래스로 바꿔치기합니다. isa-swizzling의 동작과 class가 거짓말을 하는 이유, setter를 거치지 않으면 알림이 오지 않는 조건을 정리했습니다.
읽어보기엄선한 주제 · 16 글
Objective-C 문법과 런타임, 메모리 관리, Swift 연동 개념을 깊이 있게 다룹니다.
최신 글
KVO는 옵저버를 붙이는 순간 런타임이 객체의 클래스를 동적 서브클래스로 바꿔치기합니다. isa-swizzling의 동작과 class가 거짓말을 하는 이유, setter를 거치지 않으면 알림이 오지 않는 조건을 정리했습니다.
읽어보기카테고리는 ivar를 추가할 수 없지만 Associated Objects로 값을 매달 수 있습니다. 객체 옆 사이드 테이블에 저장되는 원리와 카테고리 프로퍼티 완성형, assign만 조심하면 되는 메모리 정책을 정리했습니다.
읽어보기메서드 스위즐링은 셀렉터와 IMP를 잇는 연결표를 런타임에 맞바꾸는 기법입니다. 관례적인 구현 전체와 _cmd가 거짓말을 하는 부작용, 어디까지 써도 되는지의 경계를 정리했습니다.
읽어보기메서드 스위즐링 코드는 왜 하나같이 +load 안에 들어 있을까요? 비슷해 보이는 +initialize에 넣으면 안 되는 걸까요?
읽어보기iOS 크래시 로그에서 가장 자주 만나는 문장 중 하나가 unrecognized selector sent to instance입니다.
읽어보기Objective-C 코드에서 대괄호로 감싼 [receiver message] 구문, 겉보기엔 그냥 메서드 호출처럼 보입니다.
읽어보기iOS 개발을 시작하면 누구나 한 번쯤 궁금해합니다. "애플은 잘 쓰던 Objective-C 놔두고 왜 굳이 Swift를 새로 만들었을까?" 하고요.
읽어보기iOS 개발 공부를 시작하면 꼭 한 번 마주치는 언어가 있어요. 대괄호가 잔뜩 들어간 낯선 문법, NSString 같은 알 수 없는 접두어.
읽어보기