2012-08-04 33 views
2

我有一個應用程序維護一組嵌套的對象,自定義類。這個應用程序需要能夠隨着多個Quartz Composer組合與非常相似的自定義提供程序修補程序一起共享它的數據。質控組合物在本應用程序中運行。使用什麼Objective-C IPC機制?

QC修補程序只能處理其輸入上有限的對象類型,所以它看起來不像我的自定義類將在那裏工作。我也猶豫是否要以我需要添加新的Objective-C代碼的方式將應用程序硬連接到我的應用程序。

我已經嘗試了分佈式對象,儘管我被告誡他們。我發現他們太不可靠了。由於我的QC補丁運行速度爲60fps,因此他們試圖頻繁訪問出售對象,以致在出現故障之前無法正常關閉連接。

現在,我正在使用分佈式通知向我的QC補丁發送更新字典,每次發生的變化大概是第二次。我將我的自定義類序列化爲字典,以便我可以執行此操作,然後在每個最多5個接收此數據的修補程序實例中對字典進行反序列化。這種方式很有效,但效率不高,而且我擔心潛在的延遲和丟棄的消息的警告。我的補丁需要以非常及時的方式接收更新(小於.1秒,而且更快),並且沒有丟失。

什麼是我用來從我的應用程序中獲取數據到我的自定義QC補丁的最佳機制?

謝謝! 亞當

+0

在http://stackoverflow.com/questions/7661923/inter-process-from-different-users-communication-in-objective看看-C – 2012-12-22 12:07:09

回答

0

如果你想要它是高層次的,XPC是要走的路(它甚至有一個很好的更新,可以直接在Mountain Lion中使用它與Objective-C一起使用(看看NSXPC前綴類和協議))。如果結果太慢(不應該因爲XPC非常輕巧),你可以嘗試回到馬克斯消息,這是幾乎所有類型的IPC在OS X上使用的東西。但是!通過MIG生成的消息是一個痛苦的屁股,所以你應該先嚐試XPC,並且只有在結果太慢時才嘗試一下消息。

,並就如何創建XPC服務概述,可以發現here