Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

482
Vistas
NSMachBootstrapServer está en desuso, ¿cómo se puede usar NSXPCConnection para registrar un servicio Mach?

Necesito escribir un servicio Mach con el que puedan hablar tanto mi aplicación como un complemento del sistema, uso la API de NSMachPort para crear un nuevo puerto y luego lo registro con NSMachBootstrapServer :

 - (void) run { NSMachPort *serverPort = (NSMachPort *)[NSMachPort port]; [serverPort setDelegate:self]; [serverPort scheduleInRunLoop:NSRunLoop.currentRunLoop forMode:NSDefaultRunLoopMode]; [NSMachBootstrapServer.sharedInstance registerPort:serverPort name:@"com.example.MyApp"]; [NSRunLoop.currentRunLoop run]; }

Clang se queja de que NSMachBootstrapServer ha quedado obsoleto:

 warning: 'NSMachBootstrapServer' is deprecated: first deprecated in macOS 10.13 - Use NSXPCConnection instead

¿Cómo se usa NSXPCConnection para reemplazar la funcionalidad de NSMachBootstrapServer al escribir un servicio mach que no es XPC?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Eso es cierto: la clase NSMachBootstrapServer y la mayoría de sus clases complementarias están obsoletas en macOS 10.13 High Sierra.

En macOS 10.14 Mojave y superior, debe usar una API NSXPCConnection , esa es la parte del módulo Foundation . Se describe en el archivo de encabezado NSXPCConnection.h . Por el momento consta de las cuatro clases principales:

  • NSXPCConexión
  • Interfaz NSXPC
  • NSXPCListener
  • NSXPCListenerEndpointNSXPCListenerEndpoint

Así es como se ve un proceso de conexión XPC:

ingrese la descripción de la imagen aquí

Y como puede ver en una imagen, debe implementar un oyente.

Así es como se vería un fragmento de código Swift con un oyente:

 let listener = NSXPCListener(machServiceName: "Name-of-Sample.Helper") listener.delegate = delegate listener.resume() RunLoop.current.run()

Así es como se vería un fragmento de código Obj-C con un oyente:

 self.listener = [[NSXPCListener alloc] initWithMachServiceName:@"Name-of-Sample.Helper"]; self.listener.delegate = self; [self.listener resume]; [[NSRunLoop currentRunLoop] run];

Si observa esta publicación , descubrirá cómo implementar correctamente todos los objetos necesarios de XPC Connection .

y...

Si observa esta publicación , también descubrirá cómo se puede usar con un servicio Mach (hay un enlace de GitHub) .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda