有没有办法可以将对象方法而不是函数传递给想要SCNetworkReachabilityCallBack
作为参数的函数?
以下是SCNetworkReachabilityCallBack的定义方式:
typedef void (*SCNetworkReachabilityCallBack) (
SCNetworkReachabilityRef target,
SCNetworkReachabilityFlags flags,
void *info
);
答案 0 :(得分:0)
为了安全起见,您可以编写一些C或C ++粘合代码并传递该函数,然后调用您的对象方法。
答案 1 :(得分:0)
传递发送消息的块,然后让C回调执行块! :d
基本上,C回调将充当胶水代码。由于Objective-C方法的IMP永远不会是与回调兼容的类型,因此在进入Objective-C消息调度之前,您总是需要至少一个间接级别。如果你需要携带更多的状态而不仅仅是对象,一个块可能会帮助你,但C函数存根不会去任何地方。