web-dev-qa-db-ja.com

Objective-CブリッジングヘッダーがXcode 8で作成されない

Swift 3プロジェクト(Xcode 8 IDE)にObjective-Cライブラリを追加しようとしています。ただし、Objective Cインターフェイスヘッダーは自動的に生成されません。手動でブリッジングヘッダーを追加しようとしましたが、ブリッジングヘッダー.hが見つからないというリンクエラーが表示されました。助けていただければ幸いです:)

42
Augustine P A

ここで問題の解決策。

  • 新しいヘッダーファイルを作成し、「プロジェクト名-Bridging-Header.h」のように名前を付けます。ファイルはプロジェクトフォルダーに保存する必要があります
  • Xcodeプロジェクトを選択->ビルドターゲットを選択->ビルド設定を選択->上部の「すべて」オプションをクリック-> Swift Compiler-Generalを検索
  • Objective-C Bridging Headerアイテムを選択し、その値フィールド(同じ行の右側)をダブルクリックします。 1つのポップアップが表示され、そこにブリッジングヘッダーファイルのパスを入力できます(ヘッダーファイルのパスを提供するには、以下の手順に従ってください)。
  • Finderを開き、ブリッジヘッダーファイルをポップアップにドラッグアンドドロップします。これで、ブリッジングヘッダーの絶対パスが作成されます。関連するパスを作成するには、パスを$(PROJECT_DIR)/ $(PROJECT_NAME)/ $(PROJECT_NAME)-Bridging-Header.hとして指定できます

  • 値を保存するには、外側をクリックします。できた!!これで、Objective-Cライブラリ(たとえば#import "SVProgressHUD.h")をブリッジファイルにインポートし、Swiftプロジェクトで使用を開始できます。

これが誰かに役立つことを願っています。 :)

147
Augustine P A

Objective Cヘッダーファイルの作成手順

  1. File->New->File->Header File

  2. このようにヘッダーファイルに名前を付けますyourAppName-Bridging-Header

  3. 次に、Project->Build Settingsをクリックします

  4. BasicからAllに変更

  5. 検索ブリッジング

  6. 以下の画像に示すように、検索結果が表示されます

enter image description here

追加した後

enter image description here

  1. その中でObjective-Cブリッジングヘッダーの右をダブルクリックし、次のように入力します。

    例:yourAppName/yourAppName-Bridging-Header.h

  2. 次のようにインポートする必要があります

enter image description here

  1. それで全部です

ハッピーコーディング:)

注意:
ヘッダーファイルはプロジェクト内に直接配置する必要があります。サブフォルダー内に作成しないでください

10
Ariven Nadar

新しいObjective-Cファイルを作成し、Xcodeにすべてをセットアップする際のすべての核心を処理させるのが最も簡単なようです。それが完了したら、Objective-Cファイルを削除できます。

  1. プロジェクトエクスプローラで右クリックし、新しいファイルを選択します
  2. 選択されたObjective-Cファイル
  3. delete_meなどの名前を付けます
  4. ブリッジングファイルを作成して「はい」と言うように求められます
  5. 作成したファイルを削除します(おそらくdelete_me.m
1
Mr Rogers

複数のターゲットの場合、Swiftクラスがそのターゲットのメンバーであることを確認してください。そうでない場合、ファイルは生成されません。
Xcode 8.3

1
Klajd Deda