1. ホーム
  2. objective-c

複数のターゲットを持つObjective CからSwiftへのヘッダーファイル

2023-09-19 07:33:52

質問

Objective Cからimport文でSwiftのクラスをうまく呼び出せています(ターゲット「MyApp」に対して)。

#import "MyApp-Swift.h"

ここで、"MyAppLite"という新しいターゲットを作成しました。

新しいターゲットをコンパイルすると、コードによって "MyApp-Swift.h" が必要なのに、コンパイラーは "MyAppLite-Swift.h" を作成しているため、エラーが発生します。

そこで、条件付きのSwift/ObjCヘッダを作成する必要があります。 #import を作成する必要があります。

これはどうすればいいのでしょうか、それとももっといい方法があるのでしょうか。

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

また Product Module Name で設定することもできます。 Build Settings に、モジュール間で同じになるように設定します。 $(PROJECT_NAME) に設定しました)、そのため <project>-Swift.h ファイルがすべてのモジュールで同じ名前になるようにします。これにより、プリプロセッサー・マクロの追加やチェックが不要になります。