2

我有一个维护一组嵌套对象、自定义类的应用程序。此应用程序需要能够在其更改时与具有非常相似的自定义提供程序补丁的多个 Quartz Composer 组合共享其数据。QC 组合在此应用程序内运行。

QC 补丁只能处理其输入的有限对象类型,因此我的自定义类似乎无法在那里工作。我也犹豫是否将组合硬连接到我的应用程序,这种方式需要我在添加新组合时添加新的 Objective-C 代码。

我已经尝试过分布式对象,即使我被警告​​过不要使用它们。我发现他们太不可靠了。由于我的 QC 补丁以 60fps 的速度运行,它们试图访问售卖对象的频率非常高,以至于我无法在连接崩溃之前优雅地关闭连接。

现在,我正在使用分布式通知将更新字典发送到我的 QC 补丁每次发生变化时,大约是每秒一次。我将我的自定义类序列化为字典,以便我可以执行此操作,然后在最多 5 个接收此数据的补丁实例中对字典进行反序列化。这可行,但似乎效率低下,我担心潜在的延迟和丢失消息的警告。我的补丁需要非常及时地接收更新(少于 0.1 秒,越快越好),并且不掉线。

什么是我用来将数据从我的应用程序获取到我的自定义 QC 补丁的最佳机制?

谢谢!亚当

4

1 回答 1

0

如果你希望它是高水平的,XPC 是要走的路(它甚至有一个很好的更新,可以直接在 Mountain Lion 中与 Objective-C 一起使用(查看NSXPC前缀类和协议))。如果这太慢了(这不应该是因为 XPC 非常轻量级),你可以尝试回退到 mach 消息,几乎每种 IPC 在 OS X 上使用的东西。但是!通过 MIG 生成 mach 消息很麻烦,所以你应该先尝试 XPC,只有当它太慢时,才尝试 mach 消息。

关于如何创建 XPC 服务的概述可以在这里找到

于 2012-08-04T01:12:17.737 回答