MASTG-KNOW-0104: Mecanismos de Comunicação entre Processos (IPC)
Comunicação entre Processos (IPC) permite que processos enviem mensagens e dados entre si. Para processos que precisam se comunicar, existem diferentes formas de implementar IPC no iOS:
- XPC Services: XPC é uma biblioteca estruturada e assíncrona que fornece comunicação básica entre processos. É gerenciado pelo
launchd. É a implementação mais segura e flexível de IPC no iOS e deve ser o método preferencial. Ele é executado no ambiente mais restrito possível: em sandbox sem escalonamento de privilégios root e com acesso mínimo ao sistema de arquivos e à rede. Duas APIs diferentes são usadas com XPC Services:- NSXPCConnection API
- XPC Services API
- Mach Ports: Toda comunicação IPC depende fundamentalmente da API do Mach Kernel. Mach Ports permitem apenas comunicação local (dentro do mesmo dispositivo). Podem ser implementados nativamente ou através de wrappers do Core Foundation (CFMachPort) e Foundation (NSMachPort).
- NSFileCoordinator: A classe
NSFileCoordinatorpode ser usada para gerenciar e enviar dados de e para aplicativos por meio de arquivos disponíveis no sistema de arquivos local para vários processos. Os métodos do NSFileCoordinator são executados de forma síncrona, portanto seu código será bloqueado até que eles parem de executar. Isso é conveniente porque você não precisa esperar por um callback assíncrono, mas também significa que os métodos bloqueiam a thread em execução.