将实现协议的Swift类导入Objective-C类

火龙M子

我在Swift中有一个实现协议的类:

class SwiftClass: SwiftProtocol {
    func test() {
        NSLog("Test");
    }
}

这是简单的协议

@objc protocol SwiftProtocol {
    func test()
}

当我导入它并使用它作为Objective-C类时,会出现此错误

使用未声明的标识符“ SwiftClass”

  1. 当我使SwiftClass扩展NSObject时,它可以正常工作。
  2. 在协议中具有和删除@objc会产生相同的错误。
  3. 2个文件的目标成员身份指向正确的项目。

有没有办法导入实现协议的类?我究竟做错了什么?

阿纳托利P

https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-ID35的Swift Type Compatibility部分

创建从Objective-C类继承的Swift类时,可以从Objective-C自动获得与Objective-C兼容的类及其成员(属性,方法,下标和初始化程序)。

这与您观察到的一致:如果SwiftClassextend,它可以正常工作NSObject用这种方法解决问题有什么问题吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

实现类或导入类java

在Objective-C类中导入Swift协议

将Project-Swift.h导入到Objective-C类中...文件未找到

Objective-C类中的Swift协议

Swift:类型必须实现协议,并且是给定类的子类

在Swift中实现Objective C协议

使用Objective-C的Swift类使用Swift的类

如何创建符合Swift和Objective-C共享协议的类方法?

Swift:实现协议的类的类型

如何使我的Objective-C类符合Swift的“ Equatable”协议?

检查Swift类是否符合协议并实现可选功能?

在Swift类中实现Objective-C协议

Swift协议仅由特定类实现

为什么Objective-C的类和协议可以具有相同的名称,而Swift却不能,在语言实现上有什么区别?

实现Swift协议的Objective-C类的弱属性

在Swift中的运行时创建符合Objective-C协议的Objective-C类的对象

从另一个Swift类访问在Obj-C类中实现的Swift协议属性

如何使Swift类符合Objective-C协议,而又不使其暴露于Objective-C?

将Swift类导入目标C故事板

Swift类“未实现(objc)协议”

Swift类不符合带有错误处理的Objective-C协议

获取实现协议swift的类类型

无法将self(实现协议)传递给类实例化的init方法。(Swift)

指定实现协议的类

如何实现Objective C类的块属性

在 Swift 中实现 Objective-C 协议

Swift 协议扩展默认实现与类中的实际实现

如何在 swift 类中实现目标 C 协议?

如何在 Objective-C 代码中使用导入的 Swift 协议和类?