¿Cómo evitar que la extensión se exporte a encabezado Swift para Objective-C?

Hice esta simple extensión en Swift:

extension DispatchQueue { func asyncAfter(delay: TimeInterval, block: @escaping ()->()) { DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(delay * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: block) } } 

En el encabezado Project-Swift.h informa un error en esta línea:

 @interface OS_dispatch_queue (SWIFT_EXTENSION(...)) - (void)asyncAfterDelay:(NSTimeInterval)delay block:(void (^ _Nonnull)(void))block; @end 

El error es: No se puede encontrar la statement de interfaz para 'OS_dispatch_queue'

¿Hay alguna forma de evitar que la extensión se exporte para Objective-C? ¿O hay alguna forma de corregir el error?

Sé que esto no es una respuesta por decir, pero encuentro el mismo problema al usar la extensión pública DispatchQueue en: dispatch_once después de los cambios en la API de Swift 3 GCD

Entonces, en mi caso, usar la solución de Vlad me ayudó a evitar este problema constante: https://stackoverflow.com/a/41570198/1672521

Puede usar @objc antes de la func o el method para evitar que se exporte para el objective-C como a continuación.

 extension DispatchQueue { @objc func asyncAfter(delay: TimeInterval, block: @escaping ()->()) { DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(delay * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: block) } }