2

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 を使用せずに前方宣言を強制する別の方法はありますか?

4

1 に答える 1

0

ダミー変数を使用する以外の方法は見つかりませんでした...

于 2016-11-25T09:45:37.143 に答える