1、下面的代码就是怎样获取私有变量(记得加头文件#import <objc/runtime.h>):
- NSObject *str;
- Mobj *obj = [[Mobj alloc] init];
- object_getInstanceVariable(obj, "mt_", (void *)&str);
- NSLog(@"%@",str);
- [obj release];
2、下面的代码就是怎样获取私有方法(记得加头文件#import <objc/runtime.h>)
OBJC_EXPORTMethod class_getInstanceMethod(Class cls, SEL name) 获取实例化方法的指针
OBJC_EXPORTMethod class_getClassMethod(Class cls, SEL name) 获取类方法的指针
OBJC_EXPORTIMP class_getMethodImplementation(Class cls, SEL name) 获取方法的实现部分
OBJC_EXPORT BOOL class_respondsToSelector(Class cls, SEL sel) 是否响应该方法
OBJC_EXPORT Method *class_copyMethodList(Class cls, unsigned int *outCount) 获取方法列表和数目
OBJC_EXPORT BOOL class_conformsToProtocol(Class cls, Protocol *protocol) 是否遵循某协议