obj-c アプリから使用されているフレームワークで定義された迅速なクラスがあります。
生成された -Swift.h ヘッダーには、@objc でマークされた swift クラスが含まれていますが、コンパイルが失敗するプロパティが 1 つあります。
このプロパティは、迅速なコードで次のように定義されています。
public var storageClass : StorageProtocol.Type = UserDefaultStorage.self
したがって、生成された obj-c プロパティは次のようになります
@property (nonatomic) Class <StorageProtocol> __nonnull storageClass;
ただし、Xcode はここで「StorageProtocol」記号を受け入れません。これは、前方宣言「@protocol StorageProtocol;」不足している。
このように定義された新しい変数を追加すると:
public var storage : StorageProtocol? = nil
これらのプロパティを定義するクラスの上に前方宣言が追加され、-Swift.h のコンパイルが成功します。
-Swift.h 生成のバグのように見えますが、ダミーの var を使用せずに前方宣言を強制する別の方法はありますか?