美文网首页
Objective-C消息转发

Objective-C消息转发

作者: lele8446 | 来源:发表于2016-11-27 15:07 被阅读37次

1. performSelector:object

performSelector在运行时调用方法,由于编译期间不会做校验,调用前最好做- (BOOL)respondsToSelector:(SEL)aSelector检查。
弊端:参数传递只能是对象,不能传递基本数据类型,而且不能满足多个参数的传递。

2. objc_msgSend

objc_msgSend() 是performSelector :withObject 方法的底层实现,可以接受基础数据类型的参数。
调用错误:

  • 兼容64位

    #if __LP64__
          objc_msgSend(self,selector, arg);
    #else
          ((void(*)(id, SEL, float))objc_msgSend)(self,selector, arg);
    #endif
    
  • Too many arguments to function call, expected 0, have 4

    Build Setting--> Apple LLVM 7.1 - Preprocessing--> Enable Strict Checking of objc_msgSend Calls 改为 NO

相关文章

  • iOS理解Objective-C中消息转发机制附Demo

    iOS理解Objective-C中消息转发机制附Demo iOS理解Objective-C中消息转发机制附Demo

  • Objective-C 运行时(Runtime)解析

    Objective-C基于C语言加入了面向对象特性和消息转发,Objective-C 的消息转发需要运行时系统来动...

  • 面试题整理

    Objective-C 中的消息与消息转发 深入理解RunLoop Autorelease

  • 2018-02-01

    《Objective-C runtime系列 1》消息发送及转发机制 Objective-C是基于C,加入了面...

  • Objective-C 消息转发

    一些概念 静态绑定:在编译期就能决定运行时所应调用的函数。代表语言:C、C++等动态绑定:所要调用的函数直到运行期...

  • Objective-C 消息转发

    前文提到(https://www.jianshu.com/p/588d1d8c3ee1),消息动态方法解析时会重载...

  • Objective-C消息转发

    理论 1.消息机制 RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。 对于C语言...

  • Objective-C消息转发

    OC中调用方法就是向对象发送消息下面的代码: 如果说method方法不存在,就会出现:unrecognized s...

  • Objective-C消息转发

    1. performSelector:object performSelector在运行时调用方法,由于编译期间不...

  • Objective-C消息转发

    我们要通过一个小例子来简单、通俗的理解一下什么是消息转发以及如何消息转发,希望看完这篇文章时大家会彻底的明白OC的...

网友评论

      本文标题:Objective-C消息转发

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