Objective-C语言中方法的传递有二种:①Selector ② Blocks,本文主要说一下Selector,关于Blocks会在后续总结一下。消息传递模型是Objective-C语言的核心机制。在Objective-C中,没有方法调用这种说法,只有消息传递。很显然,既然编译器不定位方法,那么只有运行期定位方法了,Objective-C又是怎么去运行期定位方位的呢?id objc_msgSendObjective-C就是通过上述方法来查找调用方法的~比如[itNoob cry]就被转换成objc_msgSend,这里receiver就是itNoob对象,selector就是cry选择器,当然如果cry拥有参数的话,会同样被转换,如[itNoob cry:@"呜呜" AndSmile:@"嘻嘻"]会被转换成objc_msgSend,类似如objc_msgSend。
暂无评论