调用已编译成静态库的插件私有接口的方法
来源:互联网 发布:淘宝助手菜鸟打印组件 编辑:程序博客网 时间:2024/06/04 00:44
首先,我们需要分析该类的私有方法
NSString *className = NSStringFromClass(NSClassFromString(@"XXXXXX"));//私有类类名 const char *cClassName = [className UTF8String]; id theClass = objc_getClass(cClassName); unsigned int outCount; unsigned int outCount2; Method *m = class_copyMethodList(theClass,&outCount); objc_property_t *t=class_copyPropertyList(theClass, &outCount2); NSLog(@"%d",outCount); for (int i = 0; i<outCount; i++) {//获取方法 SEL a = method_getName(*(m+i)); NSString *sn = NSStringFromSelector(a); NSLog(@"%@",sn); } NSLog(@"=============="); for (int i = 0; i<outCount2; i++) {//获取属性 NSString *sn = [NSString stringWithCString:property_getName(*(t+i)) encoding:NSUTF8StringEncoding]; NSLog(@"%@",sn); }
得到了类的私有方法,接下来我们只需要创建一个相应的实体就可以调用了。
Class cls = NSClassFromString(@"XXXX");//私有类类名 id test=[[cls alloc]init]; SEL selector = @selector(xxxx); if (test &&[test respondsToSelector:selector]) { [test performSelector:selector]; }
PS:静态库所使用的私有类类名,可通过Instruments工具监控生成的对象来获取
0 0
- 调用已编译成静态库的插件私有接口的方法
- 编译成静态的可执行文件。
- matlab函数编译成dll供Cpp调用的方法
- Cygwin编译成库文件(.lib)并且在win7下qtcreator 调用的方法
- 抽取WebRTC的音频编解码库iLBC在iOS平台编译成静态库
- 编译成内核模块的方法
- Duilib编译成静态库
- Duilib编译成静态库
- matlabR2008a函数编译成dll供vc6.0调用的方法
- 浅析将matlab函数编译成dll供Cpp调用的方法
- matlabR2008a函数编译成dll供vc6.0调用的方法
- hadoop的eclipse插件的编译成jar包
- sublime中将less编译成css的插件less2css
- 在我的Ubuntu上移植SQLite3.3.6,编译成静态库
- 界面库Duilib编译成静态库
- AGG_002 编译成静态链接库
- 将UDT编译成静态LIB库
- (转)将DuiLib编译成静态库
- 不重启vim就让vimrc文件生效
- 通过表名获得列名信息,返回json串
- 黑马程序员:正则表达式
- SOCKET通过代理连接服务器
- 【玩转Ubuntu】12. Ubuntu上使用tomcat做下载服务器
- 调用已编译成静态库的插件私有接口的方法
- 手把手教你cuda5.5与VS2010的编译环境搭建
- 把DSP TMS320F28XXX的程序段从flash复制到ram中运行
- 静态修饰
- 基于boost::asio的客户端网络库
- 通过脚本实现从日志文件中提取时间最近的几条记录
- 微派(V-TOP)第五届企业微信营销培训取得圆满成功
- error C2248: 'QObject::QObject' : cannot access private member declared in class 'QObject'全解
- Unable to execute dex:Multiple dex files define Lcom/myapp/R$array