Существуют десятки различных способов достижения этой цели.Каждый из них имеет свои преимущества и недостатки.
Вероятно, самым простым является отправка уведомлений с использованием DistributedNotificationCenter
от Foundation.Это похоже на обычный NotificationCenter
, но через границы процесса.
На принимающей стороне вы регистрируете наблюдателя следующим образом:
DistributedNotificationCenter.default().addObserver(forName: NSNotification.Name("com.mycompany.MyNotification"), object: nil, queue: nil) { notification in
print(notification)
}
На отправляющей стороне вы отправляете уведомление, подобное этому:
DistributedNotificationCenter.default().post(name: NSNotification.Name("com.mycompany.MyNotification"), object: nil, userInfo: ["data": "to send"])
Это не очень безопасно, хотя - любой процесс может отправлять и получать эти уведомления.Поэтому, если они содержат личные данные, вы не должны использовать этот метод.Это также означает, что вы должны использовать уникальное имя уведомления.Хорошая идея - начать с обратного DNS-имени, например com.mycompany.
.
Если ваше приложение находится в изолированной программной среде, есть еще одно ограничение: вы не можете отправлять словарь userInfo
.