作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个 Objective-C 协议(protocol),我正试图在 Swift 类中实现它。例如:
@class AnObjcClass;
@protocol ObjcProtocol <NSObject>
- (void)somethingWithAnArgument:(AnObjcClass *)arg;
@end
当我尝试在这样的 Swift 类中遵循它时:
@objc class SwiftClass: NSObject, ObjcProtocol {
// ...
}
我收到以下可怕的编译器错误:
Type "SwiftClass" cannot conform to protocol "ObjcProtocol" because it has requirements that cannot be satisfied.
我该如何解决?
最佳答案
确保该协议(protocol)引用的任何类都包含在您的桥接头中。
当协议(protocol)中使用的一种类型(协议(protocol)本身、返回类型、参数类型)未包含在您的 Swift 桥接 header 中时,会发生此错误。
由于 @class AnObjcClass
前向声明,Objective-C 类可以愉快地实现此协议(protocol),但似乎 Swift 类无法实现使用仅前向声明类的协议(protocol)。
关于objective-c - 类型 "SwiftClass"不能符合协议(protocol) "ObjcProtocol"因为它有不能满足的要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32915488/
我有一个 Objective-C 协议(protocol),我正试图在 Swift 类中实现它。例如: @class AnObjcClass; @protocol ObjcProtocol
我是一名优秀的程序员,十分优秀!