码迷,mamicode.com
首页 > 其他好文 > 详细

Object-C runtime programming guide学习笔记

时间:2015-09-11 19:01:29      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

Messaging
 
向一个实例发消息,runtime使用的是objc_msgSend函数来发送的。
 
每一个class都有一个指针指向他的super class,有一个 dispatch table,指向每个方法的地址。
每一个实例(来自NSObject or NSProxy)都有一个指针isa,指向他的class. 
技术分享
 
runtime通过向上回溯直到找到调用的方法,然后执行。
 
执行的方法中会传入两个隐藏参数
self:  message receiver
_cmd: 当前方法的selector

 

动态添加一个方法
resolveInstanceMethod可以动态添加实例方法,resolveClassMethod可以动态添加类方法
 
动态加载
NSBundle
 
消息转发
 
如果实现了forwardInvocation, 则当想对象发送一个不存在的消息时候,会调用此接口,可以在这里将消息转发到其他对象来处理。

Object-C runtime programming guide学习笔记

标签:

原文地址:http://www.cnblogs.com/gabrialrx/p/4801523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!