美文网首页面试题大全麦子面试题精选转载
iOS面试题:objc中向一个nil对象发送消息将会发生什么?

iOS面试题:objc中向一个nil对象发送消息将会发生什么?

作者: iOS猿_员 | 来源:发表于2019-03-29 21:09 被阅读199次

    原文:iOS面试题大全

    首先,需要搞明白2个问题:

    • 什么是isa指针
    • 消息传递机制

    isa指针是用于对象指向类对象,类对象指向元类对象的一个指针。而类对象和元类对象中又分别存放对象方法和类方法。 在消息传递机制中,就是通过isa指针来寻找到方法的实际调用地址的。

    objc在向一个对象发送消息时,runtime库会根据对象的isa指针找到该对象实际所属的类,然后在该类中的方法列表以及其父类方法列表中寻找方法运行,然后在发送消息的时候,objc_msgSend方法不会返回值,所谓的返回内容都是具体调用时执行的。 那么,回到本题,如果向一个nil对象发送消息,首先在寻找对象的isa指针时就是0地址返回了,所以不会出现任何错误。

    相关文章

      网友评论

        本文标题:iOS面试题:objc中向一个nil对象发送消息将会发生什么?

        本文链接:https://www.haomeiwen.com/subject/gkarbqtx.html