특정 Objective-C 클래스의 일부 구현을 대체해야합니다. objc/runtime 라이브러리의 함수 세트가이를 수행 할 수 있습니다. 문제를 단순화하기 위해 난 그냥 다음과 같은 간단한 샘플 코드를 작성 : #import <Foundation/Foundation.h>
#import <objc/runtime.h>
@interface MyClass
나는 일이 실제로 어떻게 작동하는지 알아 내려고 노력하고있다. 그래서 나는 카테고리를 사용하여 특정 메소드를 덮어 쓸 때 흥미로운 NSLog를 얻을 것이라고 생각했습니다. @implementation UIView(Learning)
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
N
어떻게 작동하는지 명확하게 이해하기 위해 Swizzling 메서드를 사용해 보았습니다. 이 코드를보고 : http://nshipster.com/method-swizzling/. 내가 클래스와 카테고리를 만들었습니다, 여기에 클래스의 #import <Foundation/Foundation.h>
@interface CustomClass : NSObject
모의 날짜를 반환하는 스텁 NSDate는 - [NSDate init]을 제외한 카테고리를 사용하여 쉽게 수행 할 수 있습니다. - [NSDate init]은 다른 메소드와 달리 호출되지 않습니다. class_addMethod가 도움이되지 않습니다. method_exchangeImplementations, method_setImplementation on -