1. ホーム
  2. objective-c

[解決済み] Objective-CのクラスでSwiftのプロトコルをインポートする

2022-07-16 18:12:04

質問

という名前のSwiftプロトコルをインポートしようとしています。 AnalyticProtocol という名前の Objective-C クラスに AnalyticFactory .

protocol AnalyticProtocol
{

}

私は既存のObjective-Cプロジェクトから始めています(私はxCodeで新しいSwiftプロジェクトを作成しませんでしたし、xCode 6でSwiftプロジェクトになるようにObjective-Cプロジェクトを設定する方法を見つけられませんでした)。 ).

私のSwiftファイルで、私は .h という名前のファイルを MyProjectName-Swift.h というファイルを作成しましたが、コンパイラは次のようなエラーを返しました。 は存在しない . そこで、私は .h という名前のファイルを作成しました。 MyProjectName-Swift.h という名前のファイルがありますが、これは実際には空です (中に何を入れるべきかわかりません)。

の中に Apple のドキュメント を含める必要があると言われました。 .h という名前のファイルを MyProjectName-Swift.h というファイルを作成しました。 .m ファイルに追加します。しかし、私はこのファイルを .m ファイルではなく .h . これは問題があるのでしょうか?

コンパイルしようとすると、このようなエラーが発生します。 :0: error: xxxAnalyticFactory.h:39: cannot find protocol declaration for 'AnalyticProtocol'.

そして、犯されたコード。

@interface AnalyticFactory : NSObject
{
    Class<AnalyticProtocol> _analyticProtocolClass; // The type of the analytic class currently used.
}

Objective-CのクラスにSwiftのプロトコルをインポートする方法をよく理解していないようです。

私がやっていることに間違いがあると思う人はいますか?

どのように解決するのですか?

を追加する必要があります。 @objc 属性をSwiftプロトコルに追加する必要があります。

@objc protocol AnalyticProtocol {

}