001_你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?
2014-08-28 00:53
549 查看
你使用过Objective-C的运行时编程(Runtime Programming)么?
如果使用过,你用它做了什么?
你还能记得你所使用的相关的头文件或者某些方法的名称吗?
Objecitve-C的重要特性是Runtime(运行时),在#import <objc/runtime.h> 下能看到相关的方法,用过objc_getClass()和class_copyMethodList()获取过私有API;使用
```objective-c
Method method1 = class_getInstanceMethod(cls, sel1);
Method method2 = class_getInstanceMethod(cls, sel2);
method_exchangeImplementations(method1, method2);
```
代码交换两个方法,在写unit test时使用到。
如果使用过,你用它做了什么?
你还能记得你所使用的相关的头文件或者某些方法的名称吗?
Objecitve-C的重要特性是Runtime(运行时),在#import <objc/runtime.h> 下能看到相关的方法,用过objc_getClass()和class_copyMethodList()获取过私有API;使用
```objective-c
Method method1 = class_getInstanceMethod(cls, sel1);
Method method2 = class_getInstanceMethod(cls, sel2);
method_exchangeImplementations(method1, method2);
```
代码交换两个方法,在写unit test时使用到。
相关文章推荐
- 内核子系统或设备驱动可以直接编译到内核,也可以编译成模块,如果编译到内核,可以使用前一节介绍的方法通过内核启动参数来向它们传递参数,如果编译成模块,则可以通过命令行在插入模块时传递参数,或者在运行时,
- FSO组件不可用,各种与FSO相关的功能都将出错!请运行Install.asp或者到后台网站配置处设置好FSO组件名称。或无法使用vbscript
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- 在使用ArcGIS的ArcToolbox时出错提示"该内存不能为读":安装MapInfo 时出现对话框“该计算机缺少Installscript引擎。请运行ISScript.msi(如果有的话),或者联系您的支持人员获得进一步的帮助。”
- synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,没有的话,直接运行 它包
- 软件项目或者产品有时候会用到本机网卡的物理MAC地址、IP地址、硬盘序列号加上使用软体名称和地址进行安全加密验证,例如结合MAC地址进行登录验证等等,当然这种项目一般在局域网内运行,能相对提高系统的安全性
- windows编程使用递归方法遍历文件的方法
- win2000系统,运行msconfig,提示:找不到文件或者其组件的解决方法
- 使用.bat文件或者是cmd里面运行.jar文件
- 使用 Subversion 修改文件名称的大小写的方法
- objective-c(六)文件分离,合成存取方法,方法多参数,局部变量,self使用
- Chrome在某些网站可能会遇到使用flash时上传文件对话框不能弹出的情况解决方法
- 时代互联 域名注册查询接口api的使用 (w3Sockets)(这篇文章,关于是放到C:\WINDOWS或者是C:\WINDOWS\system32要亲自试试,附带在 server 2008 R2下无法运行的解决方法)
- 通过minicom传送文件的相关配置及使用方法
- 什么时候该使用多线程,以及更恰当的多线程编程方法之讨论
- 请问有没有什么方法将dmp文件导入到指定的表空间去?或者怎样改变数据库所有表所在的表空间
- vc6.0无法使用“添加到工程”或者"打开文件"解决方法
- 如果要在文件中写入空行,可以使用哪些方法?
- 使用 Subversion 修改文件名称的大小写的方法
- objective-c(六)文件分离,合成存取方法,方法多参数,局部变量,self使用(未完成)