1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //
- // NSObject+SXRuntime.h
- // UINavigation-SXFixSpace
- //
- // Created by charles on 2017/9/8.
- // Copyright © 2017年 None. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import <objc/runtime.h>
- @interface NSObject (SXRuntime)
- /**
- swizzle 类方法
-
- @param oriSel 原有的方法
- @param swiSel swizzle的方法
- */
- + (void)swizzleClassMethodWithOriginSel:(SEL)oriSel swizzledSel:(SEL)swiSel;
- /**
- swizzle 实例方法
-
- @param oriSel 原有的方法
- @param swiSel swizzle的方法
- */
- + (void)swizzleInstanceMethodWithOriginSel:(SEL)oriSel swizzledSel:(SEL)swiSel;
- /**
- 判断方法是否在子类里override了
-
- @param cls 传入要判断的Class
- @param sel 传入要判断的Selector
- @return 返回判断是否被重载的结果
- */
- - (BOOL)isMethodOverride:(Class)cls selector:(SEL)sel;
- /**
- 判断当前类是否在主bundle里
-
- @param cls 出入类
- @return 返回判断结果
- */
- + (BOOL)isMainBundleClass:(Class)cls;
- /**
- 动态创建绑定selector的类
- tip:每当无法找到selectorcrash转发过来的所有selector都会追加到当前Class上
-
- @param aSelector 传入selector
- @return 返回创建的类
- */
- + (Class)addMethodToStubClass:(SEL)aSelector;
- @end
|