Mat*_*mar 5 objective-c ios 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)
}
}
Run Code Online (Sandbox Code Playgroud)
在Project-Swift.h头文件中,它报告此行的错误:
@interface OS_dispatch_queue (SWIFT_EXTENSION(...))
- (void)asyncAfterDelay:(NSTimeInterval)delay block:(void (^ _Nonnull)(void))block;
@end
Run Code Online (Sandbox Code Playgroud)
错误是:找不到'OS_dispatch_queue'的接口声明
有没有办法阻止为Objective-C导出扩展?或者有办法解决错误吗?
Bha*_*iya -3
您可以在或@objc之前使用来防止导出为 Objective-C,如下所示。funcmethod
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)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |