Swiftを使用してSwiftプロジェクトでObjective-Cで記述されたCocoaPodを使用する方法はありますか?
ブリッジヘッダーを作成するだけですか?もしそうなら、SwiftのCocoaPodのライブラリによって定義されたオブジェクト、クラス、フィールドにアクセスできますか?
回答:
あなたの質問に対する基本的な答えは「はい」です。CocoaPodsで構築されたobjective-cコードを使用できます。
より重要な質問は、「そのようなライブラリの使用方法」です。
この質問への回答はに依存しuse_frameworks!、あなたにフラグPodfile:
レッツは、あなたが名前の使用のObjective-Cポッドを望んでいることを想像しますCoolObjectiveCLib。
ポッドファイルが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"
これで、インポートされたヘッダーで定義されているすべてのクラスを使用できます。
UIView+Toastあなたのポッドの名前ですか?そうでない場合は、ポッド名と一致する名前のインポートフレームワークを使用してみてください。
pod 'iOS-Echarts'インポートは次のように 行われます。Swiftファイル:import iOS_Echarts Objective-Cファイル:#import <iOS_Echarts/iOS-Echarts.h>
podFileでフラグを使用してuse_frameworksください!Pod依存関係のフォルダー構造のXcode内に、xxxxxxx-umbrella.hサポートファイルを追加します。
あなたの{PROJECT_NAME}-Bridging-Header.h使用において:
#import "xxxxxxx/xxxxxxx-umbrella.h"
わたしにはできる。