Я решил это с NSDistributionNotifications
. В приложении UIAgent я добавляю наблюдателя в @"QuitProcessNotification"
(любое другое имя):
[[NSDistributedNotificationCenter defaultCenter]
addObserver:self selector:@selector(quit:)
name:@"QuitProcessNotification"
object:@"com.MyCompany.MyApp"
suspensionBehavior:NSNotificationSuspensionBehaviorDeliverImmediately];
Обратный вызов выглядит так:
- (void) quit:(NSNotification *) notification
{
[NSApp terminate:nil];
}
В основном приложении:
Отправка уведомления:
[[NSDistributedNotificationCenter defaultCenter]
postNotificationName:@"QuitProcessNotification"
object:@"com.MyCompany.MyApp"
userInfo: nil /* no dictionary */
deliverImmediately: YES];
Убедитесь, что параметр object
действительно является идентификатором пакета приложения-отправителя.