Если вы контролируете и отправителя, и получателя, вы можете открыть сокет между двумя процессами (man socketpair), что является довольно высокой производительностью. Вы также можете открыть файл в общей папке (например, / tmp) и записать в него из одного процесса и прочитать из другого, что довольно быстро. Вы также можете открыть два порта TCP / IP на локальном компьютере, по одному в каждом процессе, а затем отправлять их с одного на другой «по сети».
Если вы выбираете только два варианта - NSNotifications или AppleEvents, то, скорее всего, AppleEvents будет работать лучше.