objective-c - Swift 代码不能使用继承自 Swift 类的 Obj-C 类?
问题描述
我有一个在 Swift 中定义的类:
// SwiftClass.swift
@objc
class SwiftClass: NSObject {
// ...
}
一个 Objective-C 类可以从那个 Swift 类继承:
// ObjCObject.h
#import "MyModule-Swift.h"
@interface ObjCObject: SwiftClass
// ...
@end
但是,这样做时,我不能再在 Swift 代码中使用该类。
要在 Swift 中使用它,我必须将它添加到桥接头中:
// MyModule-BridgingHeader.h
#import "ObjCObject.h"
因为只有桥接头引用的类对 Swift 代码可见。这会创建一个循环引用,因为桥接头必须在编译 Swift 源代码之前处理,但生成的 Swift 标头 ( MyModule-Swift.h
) 仅在编译 Swift 源代码后才存在,因此在处理桥接头时将不存在。
如果只是用于方法参数,我可以使用前向声明,但 Obj-C 类不能从前向声明的类继承。
所以我只是在这里遗漏了一些东西,还是真的可以在 Swift 中使用 Obj-C 类,在 Obj-C 中使用 Swift 类,但是如果它继承自 Swift 类,则不能在 Swift 中使用 Obj-C 类?
解决方案
推荐阅读
- python - 如何在不使用密钥的情况下验证 Fernet 令牌?
- python - 从简单的熊猫数据框创建矩阵
- python - 在 Pandas 中计算共现的更好方法
- javafx - 如何从矩形中找到图像模式?
- python - 在 windows 上安装 biopython(使用 mobaxterm)
- splunk - 如何使通过公共相关 ID 链接的变量显示在 Splunk 表的同一行上?
- ansible - 如何将文件从远程主机拉取并推送到另一台远程主机?
- php - 无法在 wordpress 代码段中对 foreach 进行排序
- mongodb - MongoDB 嵌入文档作为相关字段的容器
- vba - 运行时错误“5”:运行秒时的参数无效 = Dir