Как запретить расширение для экспорта в заголовок Swift для Objective-C?

Я сделал это простое расширение в 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) } } 

В заголовке Project-Swift.h он сообщает об ошибке в этой строке:

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

Ошибка: не удается найти объявление интерфейса для «OS_dispatch_queue»

Есть ли способ предотвратить расширение экспорта для Objective-C? Или есть способ исправить ошибку?

2 Solutions collect form web for “Как запретить расширение для экспорта в заголовок Swift для Objective-C?”

Я знаю, что это не ответ для каждого, но я сталкиваюсь с той же проблемой, используя общедоступное расширение DispatchQueue: dispatch_once после изменения API Swift 3 GCD

Так что в моем случае использование решения от Vlad помогло мне избежать этой постоянной проблемы: https://stackoverflow.com/a/41570198/1672521

Вы можете использовать @objc перед func или method чтобы предотвратить экспорт для объектного C, как @objc ниже.

 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) } } 
  • Как извлечь Int16 из данных в Swift 3
  • IONIC 3: Как установить фон на прозрачный в IOS с помощью QR-сканера?
  • Как реализовать базовый сценарий ввода UITextField + UIButton с помощью ReactiveCocoa 3?
  • ReactiveCocoa 4: Как отправить ошибку наблюдателю без прерывания сигнала
  • Используйте ReactiveCocoa 3 и 4 с основными данными
  • Как использовать AFNetworking 3.x для использования данных из веб-службы SOAP в ios, объектив-C
  • DynamicProperty vs MutableProperty против AnyProperty vs ConstantsProperty
  • Как создать пользовательский входной файл в Ionic 2+ с помощью стиля кнопки?
  • Interesting Posts

    Отображение корейских символов – приложение iOS

    QuickBlox v2.6 x Войти через Facebook для iOS

    UITableView добавляет новые строки вниз с анимацией без перезагрузки всей таблицы

    Вложенные данные в Firebase

    Файл UIDocumentInteractionController не подключен к Mail, если есть другое приложение, поддерживающее тип файла

    Просмотры не вращается в ландшафтном режиме после обновления iOS6

    CocoaLumberjack with Swift – Вызов макросов препроцессора

    facebook ios api – Как отправить синхронный запрос графика

    Свойства CALayer (например, тени) не отображаются на всех UITableViewCells

    Фильтрация NSArray объектов NSDictionary с использованием NSPredicate

    iOS – возможно ли заставить объект подкласса UILabel стать первым ответчиком?

    Обменные строки между Mac OS X и iOS через Bluetooth

    Вычислить высоту UITableViewCell для соответствия строке

    Работает ли ARC с объектами Core Graphics?

    Настройка приложения IOS VoIP для работы в режиме сна / фона

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.