NSDistributedNotification в macOS периодически не работает

Я использую NSDistributedNotifications в качестве IPC в macOS между двумя процессами. Иногда вижу, что уведомление отправлено, но не получено и нужная операция не выполнена.

Код отправителя:

[[NSDistributedNotificationCenter defaultCenter]postNotificationName:@"doSomething" object:myObject userInfo:config deliverImmediately:YES];

Код получателя:

[[NSDistributedNotificationCenter defaultCenter]addObserver:self selector:@selector(myfunc:) name:@"doSomething" object:myObject];

Есть ли способ отладить это? Могу ли я запустить какую-нибудь утилиту командной строки, такую ​​как dtrace или около того, чтобы увидеть, было ли уведомление отправлено желаемому процессу? Любая помощь будет ощутима


person ZestyZest    schedule 18.10.2016    source источник
comment
Откуда myObject приемника?   -  person Willeke    schedule 19.10.2016
comment
это общая строка между отправителем и получателем, которую я использую для уникальной идентификации отправителя.   -  person ZestyZest    schedule 19.10.2016
comment
Это тот же объект (тот же адрес)?   -  person Willeke    schedule 19.10.2016
comment
Это строка, и отправитель и получатель не используют один и тот же объект. Думайте об этом как о ключе, который идентифицирует отправителя, который, по сути, определяет, что меня интересуют уведомления, отправленные только процессом с ключом. Если я установлю значение nil, процесс будет получать все распределенные уведомления.   -  person ZestyZest    schedule 19.10.2016
comment
Вы наблюдаете за уведомлениями, отправленными myObject получателя.   -  person Willeke    schedule 20.10.2016
comment
Да .. объект отправителя = объект получателя   -  person ZestyZest    schedule 20.10.2016
comment
Нет, объект отправителя равен объекту получателя. Это не один и тот же объект.   -  person Willeke    schedule 21.10.2016
comment
У них разные адреса в памяти. Но они имеют одно и то же строковое значение, которое я обозначил как myObject. Обратите внимание, что я получаю уведомления в 75% случаев, но по каким-то неизвестным причинам я не получаю их в случайное время.   -  person ZestyZest    schedule 21.10.2016
comment
Возможно, этот вопрос объясняет, почему это работает: Почему две строки NSString, взятые из пользовательского ввода, имеют один и тот же адрес?   -  person Willeke    schedule 21.10.2016
comment
Я понимаю вашу точку зрения, но я думаю, что все, что я прочитал на Документ Apple говорит другое. When using distributed notifications, though, the object must be a string (CFString or NSString). A useful choice for the observed string is the bundle identifier of the target application. Можете ли вы подтвердить, действительно ли объект должен иметь тот же адрес?   -  person ZestyZest    schedule 22.10.2016
comment
Я не читал всю историю, только документацию addObserver. То, что вы говорите, имеет больше смысла.   -  person Willeke    schedule 22.10.2016