[Runtime]-消息机制调用多个参数以及何时使用Runtime
2016-08-03 00:00
99 查看
摘要: 开发中runtime什么时候使用?怎样使用runtime调用多个参数的方法?
1:开发中什么时候使用Runtime?
>01-有些框架如YYKit等等很多都是使用运行时去写的,虽然规范,但是装逼
>02-有些不得不用Runtime消息机制,它可以帮助我们调用私有的方法:就是外面没有暴露出来的一些方法或者系统里面的一些私有api
2:怎样使用消息机制调用不带参数方法和带有多个参数的方法?
代码演示:
创建一个Person类:
实现Person类中的几个方法:
意见反馈邮件:1415429879@qq.com
欢迎你们的阅读和赞赏、谢谢!
1:开发中什么时候使用Runtime?
>01-有些框架如YYKit等等很多都是使用运行时去写的,虽然规范,但是装逼
>02-有些不得不用Runtime消息机制,它可以帮助我们调用私有的方法:就是外面没有暴露出来的一些方法或者系统里面的一些私有api
2:怎样使用消息机制调用不带参数方法和带有多个参数的方法?
代码演示:
- (void)viewDidLoad { [super viewDidLoad]; //Person *p = [Person alloc]; Person *p = objc_msgSend(objc_getClass("Person"), @selector(alloc)); //p = [p init]; p = objc_msgSend(p, sel_registerName("init")); // 调用eat方法 objc_msgSend(p, @selector(eat)); // 如果eat方法没有暴露出来,使用[p eat]就会报错,但是使用Runtime就可以调用 // 调用有参数的方法: objc_msgSend(p, @selector(run:),200); }
创建一个Person类:
#import <Foundation/Foundation.h> @interface Person : NSObject - (void)eat; - (void)run:(NSInteger)metre; @end
实现Person类中的几个方法:
#import "Person.h" @implementation Person - (void)eat { NSLog(@"吃"); } - (void)run:(NSInteger)metre { NSLog(@"今天我跑了%ld米",metre); } @end
意见反馈邮件:1415429879@qq.com
欢迎你们的阅读和赞赏、谢谢!
相关文章推荐
- C#关于静态函数与普通函数之间的调用问题,以及可变参数的使用
- Java中Process和Runtime()使用,以及调用cmd命令阻塞在process.waitfor( )的问题解决
- ssh调用expect使用以及shell同时传入两个参数调用
- 使用<a>标签调用struts2的action、传递动态参数、以及参数中出现加号等特殊字符的处理方法
- (转)RSS在.net下面的调用以及使用
- window.open使用方法以及参数说明
- 带输出参数的存储过程的使用及在C#中调用问题
- JavaScript---window.open使用方法以及参数说明(完整版)
- 【专题】window.open的例子和使用方法以及参数说明(完整版)
- 在Robot中使用脚本调用,头文件以及DATAPOOL进行脚本编写
- window.open使用方法以及参数说明
- window.open的使用方法以及参数说明
- 如何使用 ADO.NET 和 Visual C# .NET 调用带参数的存储过程
- 如何以及何时使用sIFR
- 如何以及何时使用sIFR
- window.open使用方法以及参数说明
- 带输出参数的存储过程的使用及在C#中调用问题
- window.open的例子和使用方法以及参数说明(完整版)
- window.open的例子和使用方法以及参数说明
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数