CFMessagePortInvalidationCallBack 没有远程端口的上下文信息

CFMessagePortInvalidationCallBack has no context info for remote ports

使用 CFMessagePortCreateLocal 创建本地端口时,您可以指定上下文信息 (void *)。这对于指向 Objective-C class 实例很有用。使用 CFMessagePortCreateRemote,您无法指定上下文信息。如果您希望通过 CFMessagePortSetInvalidationCallBack 指定的回调来监视远程端口何时失效,您在回调中没有可用的信息。除了使用静态变量之外还有解决方法吗?

我可能有未知数量的远程端口连接到不同的进程。

由于所有 CFType 对象都是免费桥接到 NSObject,因此 id,您可以使用关联的对象 API(例如 objc_setAssociatedObject() ).