您的位置:首页 > 其它

关于运行时,获取私有变量和私有方法

2015-07-23 16:44 281 查看
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) 是否遵循某协议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: