Cree un CFRunLoopSourceRef usando IOPSNotificationCreateRunLoopSource en Swift

Estoy tratando de suscribirme a los cambios en el estado de energía en macOS. Descubrí que hay una manera de usar IOKit, aunque es un poco complicado. Necesito importarlo usando#import <IOKit/ps/IOPowerSources.h> en un encabezado ObjC Bridging. Luego obtengo acceso a la función IOPSNotificationCreateRunLoopSource, que tiene la firma:

IOPSNotificationCreateRunLoopSource(_ callback: IOPowerSourceCallbackType!, _ context: UnsafeMutablePointer<Void>!) -> Unmanaged<CFRunLoopSource>!

Recibí ayuda de la respuesta enMétodo de devolución de llamada al bucle de ejecución de Apple, pero aún no logra crear una función de tipoIOPowerSourceCallbackType en Swift ¿Cuál es la pieza que falta para tener esta compilación?

Respuestas a la pregunta(1)

Su respuesta a la pregunta