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