1

我最近开始了一个需要进行调配的项目。

看了很多教程后,我有一个问题,实现和函数指针有什么区别?

4

1 回答 1

3

从内存中,IMP 是一个内存地址,就像一个函数指针,并且可以像一个普通的 C 函数一样被调用。但是,保证使用 Objective-C 消息传递约定,其中:

  • 第一个参数是要操作的对象(self)。
  • 第二个参数是_cmd要调用的 (SELECTOR)。我相信这是为了支持动态特性,例如 ObjC 消息转发,我们可以将原始实现包装在代理中,比如启动事务或执行安全检查,或者,对于 Cocoa 特定示例,添加一些属性观察,通过魔术,在运行时。虽然我们已经有了函数签名,但在某些情况下,我可以帮助您了解“我是如何到达这里的?” 带有消息签名。
  • 以下参数(如果有)根据方法协定。
于 2015-12-30T04:56:13.987 回答