在32和64位可可应用程序之间传递数据

时间:2014-06-17 10:18:38

标签: objective-c macos cocoa architecture nsxpcconnection

我有一个需要使用32位渲染库的64位可可项目,我无法将其移植到64位。

我决定将它分离为一个渲染服务,它将以32位编译并为库提供一个接口,主项目将以64位编译并将访问渲染服务。

我想知道进行进程间通信的最佳方法是什么。我正在寻找一种能够提供快速沟通和简单api的解决方案。

现在看来XPC(特别是NSXPCConnection)是推荐的解决方案。但是,我不确定 - 它是否适用于32位应用程序?

另外,我需要传递相当大量的数据(最大~5MB),因此我担心XPC的性能和速度。在这种情况下是否可以/建议使用共享内存映射?它可以与xpc一起使用吗?

1 个答案:

答案 0 :(得分:0)

对于32位到64位的API,Apple确实在他们自己的应用程序(如Pages)中使用XPC服务将旧数据迁移到更新的API。

虽然我还没有使用NSXPCConnection让它工作,但Apple自己的应用程序使用xpc/xpc.h中的功能。