私はsqlite3フレームワークを必要とするフレームワークを作りました。 sqlite3をSwiftファイルにインポートするフレームワークにObjective-Cブリッジヘッダーを追加するにはどうすればよいですか?
私のプロジェクトにはすでにブリッジヘッダーファイルがありますが、私のフレームワークにはありません。
ターゲットのビルド設定でObjective-C Bridging Header
設定を見つけました。デフォルトでは非表示になっています。基本ではなくすべてをチェックします。
最近のXcodeバージョンでは、このソリューションはエラーUsing bridging headers with framework targets is unsupported
を発生します。
私が使用してきた回避策は、ファイルインスペクタでCヘッダーpublicを作成し、次の例のようにMyFramework.h
にインポートすることです。
#import <MyFramework/MyObjectiveC.h>
Cヘッダーをpublicに変更する方法
Cヘッダーを開き、右上隅をクリックしてインスペクターを表示します。ファイルインスペクタを表示するには、右上隅のファイルアイコンをクリックします。
sqlite3フレームワークをObjective-Cブリッジングファイルにインポートするだけです。その後、自動的にSwiftで使用できます。
Appleドキュメント:
相互運用性とは、SwiftとObjective-Cを双方向でやり取りして、ある言語で記述されたコードにアクセスし、他の言語のファイルで使用できるようにする機能です。 Swiftをアプリ開発ワークフローに統合し始めたら、相互運用性を利用してCocoaアプリの記述方法を再定義、改善、強化する方法を理解することをお勧めします。相互運用性の重要な側面の1つは、Swiftコードを記述するときにObjective-C APIを使用できることです。 Objective-Cフレームワークをインポートした後、そこからクラスをインスタンス化し、ネイティブのSwift構文を使用してそれらと対話できます。
[〜#〜] edit [〜#〜]:Objective-CフレームワークまたはSwiftフレームワークまたは混合-言語フレームワークをSwiftファイルにimport yourFramework
Appleドキュメント:
外部フレームワークのインポート
純粋なObjective-Cコードベース、純粋なSwiftコードベース、または混合言語コードベースを持つ外部フレームワークをインポートできます。外部フレームワークをインポートするプロセスは、フレームワークが単一の言語で記述されていても、両方の言語のファイルが含まれていても同じです。外部フレームワークをインポートするときは、インポートするフレームワークの定義モジュールのビルド設定が[はい]に設定されていることを確認してください。
次の構文を使用して、別のターゲット内の任意のSwiftファイルにフレームワークをインポートできます。
スイフト
import FrameworkName
次の構文を使用して、別のターゲット内の任意のObjective-C .mファイルにフレームワークをインポートできます。
@import FrameworkName;