Совместное использование экземпляра FBA какао (безликого фонового приложения или просто агента) - PullRequest
0 голосов
/ 07 марта 2011

Цель

Я создаю FBA (Безликое фоновое приложение). Другие приложения (клиенты) регистрируются в FBA с помощью NSDistributedNotificationCenter. Когда клиент регистрируется, я хотел бы иметь возможность вызывать сообщения непосредственно на объекте клиента.

Первый выпуск:

Когда клиент отправляет уведомление с просьбой о регистрации, я изначально хотел установить клиенту ключ userInfo.

[NSValue valueWithPointer: self]; // где self - клиентское приложение

Однако, когда уведомление публикуется, генерируется ошибка о том, что userInfo не сериализуем.

Выпуск 2: Я создал обходной путь, предоставив userInfo NSNumber.

[NSNumber numberWithUnsignedInteger: (NSUInteger) самостоятельно];

FBA теперь получает соответствующий указатель при получении уведомления. Однако, когда я пытаюсь получить доступ к объекту (клиенту), генерируется ошибка EXEC_BAD_ACCESS.

Итак, я думаю, мой вопрос, как я могу получить доступ к другому пространству памяти? Должен ли я как-то создать общее пространство памяти? Это возможно? Я иду в неправильном направлении с этим шаблоном дизайна?

Спасибо.

1 Ответ

1 голос
/ 08 марта 2011

Отправка уведомлений туда и обратно - определенно самое простое решение, если это работает для вас.

Однако, если вам нужно больше, Cocoa поддерживает распределенные объекты через NSProxy и др.Смотри http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DistrObjects/DistrObjects.html#//apple_ref/doc/uid/10000102-SW1

...