iOSアプリ開発情報まとめ
このエントリーをはてなブックマークに追加

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構文への変換はこちら

戻る