web-dev-qa-db-ja.com

フレームワーク用のObjective-Cブリッジングヘッダー

私はsqlite3フレームワークを必要とするフレームワークを作りました。 sqlite3をSwiftファイルにインポートするフレームワークにObjective-Cブリッジヘッダーを追加するにはどうすればよいですか?

私のプロジェクトにはすでにブリッジヘッダーファイルがありますが、私のフレームワークにはありません。

17

ターゲットのビルド設定でObjective-C Bridging Header設定を見つけました。デフォルトでは非表示になっています。基本ではなくすべてをチェックします。

最近のXcodeバージョンでは、このソリューションはエラーUsing bridging headers with framework targets is unsupportedを発生します。

私が使用してきた回避策は、ファイルインスペクタでCヘッダーpublicを作成し、次の例のようにMyFramework.hにインポートすることです。

#import <MyFramework/MyObjectiveC.h>

Cヘッダーをpublicに変更する方法

Cヘッダーを開き、右上隅をクリックしてインスペクターを表示します。ファイルインスペクタを表示するには、右上隅のファイルアイコンをクリックします。

enter image description here

33

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;
4
Bas