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"
わたしにはできる。