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

Objective-C学习笔记-第二天(1)

时间:2016-06-11 15:57:44      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

Objective-C中,调用方法采用的是一种消息传递机制。

参考文章:http://blog.csdn.net/xingyevc/article/details/39397873

 

如果向某个对象传递一个信息,则会使用OC的动态绑定机制来决定需要调用的方法。

在底层,所有方法都是普通C语言函数。

然而对象收到消息后,究竟该掉哪个方法则完全于运行期决定,甚至可以在程序运行时改变。

这些特性使得OC称为一门真正的动态语言。

 

给对象发消息:

id returnValue = [someObject messageName:parameter];

转化为:

id returnValue = objc_msgSend(someObject,@selector(messageName),parameter);  

objc_msgSend函数会依据接收者与选择子的类型来调用适当的方法。

为了完成此操作,该方法需要在接收者所属的类中搜索其“方法列表”(list of methods)

如果能找到与选择子名称相符的方法,就跳至其实现代码。

若找不到,那就沿着继承体系继续向上查找,等找到名称相符的方法之后再跳转。

如果最终还是找不到相符的方法,那就执行“消息转发”

 

Objective-C学习笔记-第二天(1)

标签:

原文地址:http://www.cnblogs.com/kptanjunhao/p/5575394.html

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