我最近开始了一个需要进行调配的项目。
看了很多教程后,我有一个问题,实现和函数指针有什么区别?
从内存中,IMP 是一个内存地址,就像一个函数指针,并且可以像一个普通的 C 函数一样被调用。但是,保证使用 Objective-C 消息传递约定,其中:
_cmd
要调用的 (SELECTOR)。我相信这是为了支持动态特性,例如 ObjC 消息转发,我们可以将原始实现包装在代理中,比如启动事务或执行安全检查,或者,对于 Cocoa 特定示例,添加一些属性观察,通过魔术,在运行时。虽然我们已经有了函数签名,但在某些情况下,我可以帮助您了解“我是如何到达这里的?” 带有消息签名。