ios - 如何防止将扩展导出到 Objective-C 的 Swift header ?

标签 ios objective-c swift swift3

我用 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 header 中,它在这一行报告错误:

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

Error is: Cannot find interface declaration for 'OS_dispatch_queue'

有没有办法阻止为 Objective-C 导出扩展?或者有什么办法可以解决这个错误吗?

最佳答案

我知道这不是一个答案,但我在使用公共(public)扩展 DispatchQueue 时遇到了同样的问题: dispatch_once after the Swift 3 GCD API changes

所以在我的案例中,使用 Vlad 的解决方案帮助我避免了这个经常出现的问题: https://stackoverflow.com/a/41570198/1672521

关于ios - 如何防止将扩展导出到 Objective-C 的 Swift header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41951197/

相关文章:

ios - iOS:如何在面部识别中找到面部的程度?

ios - Swift 3 FBSDKCoreKit 错误

php - IOS 游戏 - 生命再生

ios新创建的swift文件在xcode中默认导入cocoa

ios - 具有默认值的 Swift 泛型

ios - 在越狱 iOS 设备的应用程序中包含外部包

ios - 未采用扩展的 Swift 段错误

objective-c - Protobuf 与 JSON - Objective-C/iOS

ios - 从 Objective-C 中的数组获取唯一对象集的最佳方法是什么

ios - 解析没有键的Json数组swift 4