123456789101112131415161718192021222324252627282930313233 |
- //
- // DDYHookUtility.m
- // DDTG
- //
- // Created by 翟玉磊 on 16/5/6.
- // Copyright © 2016年 翟玉磊. All rights reserved.
- //
- #import "DDYHookUtility.h"
- @implementation DDYHookUtility
- + (void)SwizzlingInClass:(Class)cls originalSelector:(SEL)originalSelector swizzledSelector:(SEL)swizzledSelector {
-
- Class class = cls;
- Method originalMethod = class_getInstanceMethod(class, originalSelector);
- Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector);
-
- BOOL didAddMethod = class_addMethod(class,
- originalSelector,
- method_getImplementation(swizzledMethod),
- method_getTypeEncoding(swizzledMethod));
-
- if (didAddMethod) {
-
- class_replaceMethod(class, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));
- }else {
-
- method_exchangeImplementations(originalMethod, swizzledMethod);
- }
- }
- @end
|