この回答は、Swiftクラスを呼び出すObjective-Cコードが既にあり、このエラーの受信を開始するユースケースに対処しています。
問題を修正する方法
次の手順で、最終的にすべての問題が解決されました。私は「鶏と卵」に言及している誰かの上で読んだ、そしてまさにこの手順に私を導いたのはまさにその概念である。この明示的なプロセスは、ヘッダーが生成されるまで、Swiftクラスを参照するObjective-Cコードを削除する必要があることを示しています。
- Objective-C実装ファイルの#import "ProductModuleName-Swift.h"ステートメントをコメント化します。
- Objective-C実装ファイル内の参照をSwiftクラスにコメント化します。
- クリーン&ビルド
- すべてのエラー/警告を解決する
- #import "ProductModuleName-Swift.h"ステートメントのコメントを削除します
- クリーン&ビルド(正常に完了するか、残っているエラーを修正します。この時点でObjective-CのSwiftクラスを参照していないことを確認してください。そうであれば、一時的にコメント化してください)
-
#import "ProductModuleName-Swift.h"ステートメントのクラス名でCmd-Clickingをクリックして、"ProductModuleName-Swift.h"が生成されていることを確認します
- Objective-C実装ファイル内のSwiftクラスを参照するコードのコメントを削除します。
- 通常どおりクリーン&ビルド( "ProductModuleName-Swift.h"を生成し、Swiftクラスを参照するObjective-Cコードを通常どおり使用できます)
Nota Bene:上記のようにスペースをアンダースコアに変更し、Defines ModuleをYESに変更することに関する回答は、Appleドキュメントで指定されているルールと同様に、このプロセスを実行するときにも適用されます。
ヘッダーパスのブリッジ
1つのエラーで、ビルドプロセス中にProductModuleName-Bridging-Header.hファイルが見つかりませんでした。この事実によりエラーが発生しました
<不明>:0:エラー:ブリッジングヘッダー '/Users/Shared/Working/abc/abc-Bridging-Header.h'は存在しません
エラーを詳しく調べたところ、ファイルは実際には(間違ったパス)にあるため、記述された場所に存在することはありませんでした。
'/Users/Shared/Working/abc/abc/abc-Bridging-Header.h'。ターゲット/プロジェクトのビルド設定を簡単に検索して手動で修正を行うと、abc-Swift.hファイルが再び自動生成されました。