混合 NSXPCConnection 和 xpc C API
Posted
技术标签:
【中文标题】混合 NSXPCConnection 和 xpc C API【英文标题】:Mix NSXPCConnection and xpc C API 【发布时间】:2013-01-01 13:21:09 【问题描述】:我正在使用 NSXPCConnection
包装器处理 XPC 服务,并且由于 Objective-C 包装器无法处理 iosurfaceRef
对象,我想对 xpc.h 中定义的 C API 进行一些直接函数调用。但我找不到检索底层xpc_connection_t
引用的方法(正如我在NSXPCConnection.h 中看到的,有一个名为_xconnection
的私有ivar,它可能是我需要的引用)。
我错过了什么愚蠢的东西,还是不能简单地将 Objective-C 包装器和 C API 一起使用?
【问题讨论】:
【参考方案1】:不,但是XPCKit
提供了这样一种转换机制,并且它与 10.7 兼容。
【讨论】:
对不起,我不确定我是否理解你。 XPCKit 提供什么样的转换?不支持 IOSurfaceRef(它在愿望清单中),并且它似乎没有提供从 xpc_connecion_t 引用获取 NSXPCConnection 的方法。它似乎是 NSXPCConnection 包装器的替代品,但也没有 IOSurface 支持。 当你配置你的XPCConnection
对象时,使用它的.connection
属性,并用接收到的对象调用IOSurfaceLookupFromXPCObject()
。奖励:由于它是开源的,您甚至可以将其添加到 NSObject+XPCParse
类别中。
好的。这对我有帮助,即使它没有回答原始问题(如何检索 NSXPCConnection 对象的底层 xpc_connection_t )。谢谢!
对不起! :P 没有办法做到这一点,除非你想尝试一两次运行时破解。以上是关于混合 NSXPCConnection 和 xpc C API的主要内容,如果未能解决你的问题,请参考以下文章
通过 NSXPCConnection 传递 xpc_object_t
XPC 在工作空间中的两个可可应用程序之间,NSXPCConnection 立即失效