Отправить данные в другое приложение и получить от него ответ
Я пытаюсь общаться приложения друг с другом.
Я работаю с Apple Events в своем первом приложении с
NSAppleEventManager.shared().setEventHandler(self, andSelector: #selector(handleGetURLEvent), forEventClass: AEEventClass(kInternetEventClass), andEventID: AEEventID(kAEGetURL))
func handleGetURLEvent(_ event: NSAppleEventDescriptor, withReplyEvent replyEvent: NSAppleEventDescriptor)
Во втором приложении я создаю объект NSAppleEventDescriptor
let test = NSAppleEventDescriptor(string: "test")
let descriptor = NSAppleEventDescriptor(eventClass: AEEventClass(kInternetEventClass), eventID: AEEventID(kAEGetURL), targetDescriptor: nil, returnID: AEReturnID(kAutoGenerateReturnID), transactionID: AETransactionID(kAnyTransactionID))
descriptor.setParam(test, forKeyword: keyDirectObject)
Теперь с NSWorkspace
Я запускаю свое первое приложение
NSWorkspace.shared().launchApplication(at: myAppUrl, options: .default, configuration: [NSWorkspaceLaunchConfigurationAppleEvent:descriptor])
Все в порядке, функция handleGetURLEvent
называется, но... replyEvent.desciptorType
является kAENullEvent
Также я понятия не имею, как бы я получить replyEvent
в моем втором приложении.
Я полагаю, что-то не так с этим решением.
Поэтому мой вопрос заключается в том, как я могу просто отправить данные в другое приложение и вернуть некоторые данные?