我在一个从obj-c应用程序中使用的框架中定义了一个快速类。
生成的-Swift.h头文件包含用@objc标记的swift类,但是有一个属性使编译失败。
此属性在swift代码中定义如下:
public var storageClass : StorageProtocol.Type = UserDefaultStorage.self
所以生成的obj-c属性看起来像这个
@property (nonatomic) Class <StorageProtocol> __nonnull storageClass;
但Xcode不接受&#34; StorageProtocol&#34;符号在这里,因为前向声明&#34; @protocol StorageProtocol;&#34;不见了。
如果我添加一个像这样定义的新var:
public var storage : StorageProtocol? = nil
前向声明添加在定义这些属性的类的顶部,-Swift.h编译成功。
所以它看起来像-Swift.h生成中的一个bug,但是有没有另外一种方法可以在不使用虚拟var的情况下强制进行前向声明?
答案 0 :(得分:0)
除了使用虚拟变量之外我没有找到任何其他方式...