Objective-CのライブラリをSwiftで利用する
アップルが提供するフレームワークは、Objective-Cで書かれたものでもSwiftでimportするだけで利用できますが、
OSSで提供されるObjective-Cで書かれたライブラリは、Swiftでimportするには一手間必要になります
ここでは、Objective-Cで書かれたライブラリ「SVProgressHUD」をSwiftで利用する例を紹介します
1. ライブラリをプロジェクトにインストールします
通常する通り、Xcodeのプロジェクトへライブラリを取り込みます
CocoaPodsを使う場合、Podfileに「Pod 'SVProgressHUD'」の記述をします
2. ブリッジングヘッダーを作成します
ブリッジングヘッダーとは、Objective-CのソースをSwiftへ取り込むための中継となるObjective-Cのヘッダーファイルです
プロジェクト内に Objective-C File の「
YourProject-Bridging-Header.h」ファイルを作成します
ファイルを作成する時にブリッジングヘッダーにするのか聞いてきますのでYesを選択します
※ 同時にYourProject-Bridging-Header.mファイルも作成されますが削除しても構いません
作成した
YourProject-Bridging-Header.h ファイルが
TARGET
YourProjectの Build Settings > Swift Compiler - Code Generation > Objective-C Bridging Header に設定されているかを確認します
※ 設定されていなければ設定します
YourProject-Bridging-Header.h には、以下のコードを記述します
#import "SVProgressHUD.h"
※ Objective-Cのライブラリをインストールした分だけここで #import "xxx.h" を追加していきます
3. Swiftでインポートします
利用したいファイル(ViewController.swiftなど)でライブラリをインポートします
import SVProgressHUD // .hや"などは不用です
4. Swiftで利用します
Objective-C構文をSwift構文へ変換して利用します
利用例:ボタンをトリガーにSVProgressHUDのメソッドを呼び出します
func onShowButton(sender: UIButton) {
SVProgressHUD.show() // Objective-C構文では [SVProgressHUD show]
}
Objective-C構文のSwift構文への変換はこちら