我在Swift中有一个实现协议的类:
class SwiftClass: SwiftProtocol {
func test() {
NSLog("Test");
}
}
这是简单的协议
@objc protocol SwiftProtocol {
func test()
}
当我导入它并使用Objective-C类时,它会出现此错误
使用未声明的标识符'SwiftClass'
-
当我使SwiftClass扩展NSObject时,它工作正常 .
-
在协议中拥有和删除@objc会产生相同的错误 .
-
2个文件的目标成员资格指向正确的项目 .
有没有办法导入实现协议的类?我究竟做错了什么?
1 回答
从https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-ID35开始,部分Swift类型兼容性:
这与您观察到的一致:如果
SwiftClass
扩展NSObject
,它可以正常工作 . 以这种方式解决问题有什么不对吗?