读博客日记

2018-09-30  本文已影响7人  禾口王No_1

一. 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,因为运行时会被忽略掉。

上一篇 下一篇

猜你喜欢

热点阅读