Swiftを使用してSwiftプロジェクトでObjective-Cで記述されたCocoaPodを使用する方法はありますか?
ブリッジングヘッダーを作成するだけですか?もしそうなら、SwiftのCocoaPodのライブラリで定義されたオブジェクト、クラス、フィールドにアクセスできますか?
あなたの質問に対する基本的な答えは「はい」です。CocoaPodsで構築されたobjective-cコードを使用できます。
より重要な質問は、「このようなライブラリを使用する方法は?」です。
この質問に対する回答は、Podfile
のuse_frameworks!
フラグに依存します。
名前がCoolObjectiveCLib
のObjective-Cポッドを使用することを想像してみましょう。
ポッドファイルがuse_frameworks!
フラグを使用している場合:
// Podfile
use_frameworks!
pod 'CoolObjectiveCLib'
その後、ブリッジヘッダーファイルを追加する必要はありません。
必要なものはすべてSwiftソースファイルのインポートフレームワークです。
// MyClass.Swift
import CoolObjectiveCLib
これで、libに提示されているすべてのクラスを使用できます。
ポッドファイルがuse_frameworks!
フラグを使用しない場合:
// Podfile
pod 'CoolObjectiveCLib'
次に、ブリッジングヘッダーファイルを作成し、必要なすべてのObjective-Cヘッダーをインポートする必要があります。
// MyApp-Bridging-Header
#import "CoolObjectiveCLib.h"
これで、インポートされたヘッダーで定義されているすべてのクラスを使用できます。
PodFileでは、フラグuse_frameworks
!を使用します。依存関係のPod
フォルダー構造のXcode内で、サポートファイルにxxxxxxx-umbrella.h
を追加します。
{PROJECT_NAME}-Bridging-Header.h
で次を使用します。
#import "xxxxxxx/xxxxxxx-umbrella.h"
わたしにはできる。
また、ターゲットにブリッジングヘッダーファイル名を追加することを忘れないでください->ビルド設定-> Objective-Cブリッジングヘッダー
ブリッジングヘッダーが必要なだけで、そこに必要なものをインポートします。