Obj-CファイルをSwiftプロジェクトにインポートすると、Xcodeは期待どおりにブリッジングヘッダーファイルを作成するように自動的に促しました。ただし、いくつかの変更を加えるために両方のファイルを削除(ゴミ箱に移動)しましたが、Obj-Cファイルをもう一度インポートしようとすると、プロンプトが表示されなくなりました。理由は何ですか?私はこの同じシナリオを別のプロジェクトでもテストしました。Xcodeの自動作成されたブリッジングヘッダーを削除すると、プロンプトが再び表示されることはありません。どうしてこれなの?
問題の理由は、Xcodeビルド設定が自動生成されたブリッジングヘッダーファイルへのパスを保持しているためです。プロジェクトディレクトリにヘッダーファイル(ProjectName-Bridging-Header.h)
がまだ存在するため、ビルドエラーを取得できません。
解決方法:
プロジェクトターゲットをクリックして、ビルド設定タブに移動します(- chooseallbasic )の代わりに、Bridging Header。 Xcodeが生成したパスエントリを確認できます。それを選択して、削除ボタンをクリックします。
また、XcodeプロジェクトディレクトリからXcode自動生成ブリッジングヘッダーファイル(ProjectName-Bridging-Header.h)
を必ず削除してください。
次に、Obj-Cファイルをもう一度インポートしてみます。期待どおりにブリッジングヘッダーファイルを作成するプロンプトが表示されます。
ファイル->新規ファイル->ヘッダーファイル
YourApp-Bridging-Headerとして保存します
[ビルド設定]に移動し、[Objective-Cブリッジングヘッダー](以前の人が言ったように)を見つけて、次のようにブリッジングヘッダーに渡します:YourApp/YourApp-Bridging-Header.hここで、 'YourApp /'はアプリの名前です。 「Your App /」などの空白を含めることができます。
私の場合、xCode 7.3.1では動作します
上記で言及/提案したように、Xcodeでブリッジングヘッダーを作成する別の方法があります。ここでは、Bridgeを作成する最良かつ最も簡単な方法を紹介します。
ヘッダーを1つのグループ内に保持する場合は、New Groupを使用し、そのグループにファイルをドラッグ&ドロップします。
フォルダーを作成しないでください。作成しないと、エラーが発生します。
プロジェクト設定->ビルド設定の下を見て、User-Defined
セクションまで下にスクロールし、Swift_OBJC_BRIDGING_HEADER
というキーがあり、値があるかどうかを確認します。そこにある場合は、おそらく既にあると考えられます。その場合は、同じ名前でファイルを再作成してください。
ブリッジファイルプロジェクトで1回だけプロンプトを表示します。
誤ってファイルを削除した場合は、新しいブリッジファイルを作成する必要があります。それは同じだ。
File->New File->Header File
に移動すると、名前はYourProjectName-Bridging-Header
である必要があります。そうでない場合は、認識できません。
手動で構成する場合は、[ビルド設定]に移動し、選択を[基本(既定)]または[カスタマイズ]から[すべて]に変更します。
空のフィールドは非表示になっているため、平均的なエンドユーザーが操作しやすくなるため、ブリッジングヘッダーを追加するプロンプトが表示されない場合は、手動で見つけるのが難しい場合があります。また、検索オプションには非表示フィールドは含まれません。
すべてに変更し、Swiftコンパイラ-全般セクションに「Objective-C Bridging Header」の子設定が表示されます