代码:

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view. self.title=@"performSelector"; //performSelector是运行时系统负责去找函数/方法的,在编译时候不做任何校验;但是直接调用肯定在编译是会校验。如果函数不存在,那么直接调用 在编译时候就能够发现(借助Xcode可以写完就发现),但是使用performSelector的话一定是在运行时候才能发现(此时程序崩溃)
//Cocoa支持在运行时 向某个类添加方法(应该极少人用到, 即方法编译时不存在,但是运行时候存在,这时候必然需要使用performSelector去调用) /*直接调用方法时候,一定要在头文件中声明该方法,使用时候,也要将头文件import进来 而使用performSelector时候, 可以不用import头文件,对包含方法的 对象 调用performSelector即可*/ // 没有参数
BOOL isNoParam= [self respondsToSelector:@selector(methodNoParam)];
if (isNoParam) {
[self performSelector:@selector(methodNoParam)];
} // 一个参数
BOOL isOneParam= [self respondsToSelector:@selector(methodWithOneParam:)];
if (isOneParam) {
[self performSelector:@selector(methodWithOneParam:) withObject:@"firsht"];
} // 二个参数
BOOL isParams= [self respondsToSelector:@selector(methodWithParams: andParamSecond:)];
if (isParams) {
[self performSelector:@selector(methodWithParams: andParamSecond:) withObject:@"first" withObject:@"second"];
} }
#pragma -mark -perform
- (void)methodNoParam{
NSLog(@"methodNoParam");
} - (void)methodWithOneParam:(id)paramFirst{
NSLog(@"methodWithOneParam: %@", paramFirst); } - (void)methodWithParams:(id)paramFirst andParamSecond:(id) paramSecond{
NSLog(@"methodWithOneParam: %@,%@", paramFirst,paramSecond); }

最新文章

  1. FlashFXP(强大的FXP/ftp上传工具)V5.0.0.3722简体中文特别版
  2. redis+Keepalived主从热备秒级切换
  3. python os&shutil 文件操作
  4. MySQL在一台db服务器上面如何启动多个实例 (转)
  5. Maven 的41种骨架
  6. PHP实现下载功能之流程分析
  7. Android开发初始
  8. python中基于descriptor的一些概念
  9. UVA 10806 Dijkstra, Dijkstra.(费用流)
  10. iOS 设置UIDatePiicer为24小时制
  11. Android使用Apache的httpmime包post提交数据
  12. ActiveMQ入门练习
  13. SQL Server 扩展事件(Extented Events)从入门到进阶(2)——在GUI中创建基础扩展事件
  14. 一次ES故障排查过程
  15. ABB机器人设置安全区(案例版)
  16. idea: Unable to parse template "class"
  17. MVC5+EF6入门教程——实现动态创建数据库与登录验证
  18. ES系列十三、Elasticsearch Suggester API(自动补全)
  19. tar -zxvf中的z是个什么鬼
  20. SAS ODS GRAPHICS SGPLOT 画图 指存放定路径、名称、指定格式

热门文章

  1. Python语法基础练习
  2. WebForm——JS检测浏览器是否是IE浏览器
  3. [Umbraco] 自定义DataType中Data Editor Setting Type
  4. Java 死锁优化
  5. Android面试题(1)
  6. JavaScript -- Window-Scroll
  7. solr(三) : 导入数据库表数据
  8. 面试:vector类的简单实现
  9. 数据结构与算法(周鹏-未出版)-第六章 树-6.5 Huffman 树
  10. 读jQuery源码释疑笔记3