读博客日记

一. OC中让一个nil对象执行方法不会崩溃

消息在OC中方法调用是一个消息发送的过程。OC方法最终被生成为C函数,并带有一些额外的参数。这个C函数objc_msgSend就负责消息发送。在runtime的objc/message.h中能找到它的API。

objc_msgSend(void /* id self, SEL op, ... */ )

消息发送的时候,在C语言函数中会有很多步骤,其中第二步,就是检测这个selector的target是不是nil,OC允许我们对一个nil对象执行任何方法不会Crash,因为运行时会被忽略掉。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,885评论 0 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,887评论 1 32
  • 主要参考链接: http://yulingtianxia.com/blog/2014/11/05/objectiv...
    Kevin_Junbaozi阅读 8,646评论 0 10
  • 从2017年毕业至今,整整一年。在这一年里,我的性格和心态都发生了很多变化,从象牙塔到熔炉,来不及有一个短暂的过渡...
    独行愿也CC阅读 1,054评论 0 0
  • 这个题目,看上去既熟悉又陌生,熟悉的是在读书生涯中,无数次的写过这命题作文。陌生的是没有哪一次是发自内心写的,无数...
    小蓝儿阅读 3,851评论 6 3

友情链接更多精彩内容