前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

SwiftにObjective-Cのコードをimportする

解説

SwiftからObjective-Cのライブラリを利用するにはヘッダーファイルを1つ用意し、そこに利用したいライブラリをimportする。それだけでSwiftのコード側には一切import文を記述することなく利用できるようになる。

手順

  1. フレームワークを追加
  2. ヘッダーファイルを作成
  3. Build Settingを編集
  4. ヘッダーファイルを編集
  5. 注意ポイント

1. フレームワークを追加

省略

2. ヘッダーファイルを作成

File > New > File > (iOS or OS X) > Source > Header File. を選択 名前はBridging-Header.hなどとする。

3. Build Settingを編集

Defines Module

Packaging > Defines Module > Yesに設定

f:id:takeR:20141202222255p:plain

Objective-C Bridging Header

Swift Compiler - Code Generation > Objective-C Bridging Hader > Bridging-Header.h に設定

f:id:takeR:20141202222238p:plain

4. ヘッダーファイルを編集

#ifndef SampleApp_Building_Header_h
#define SampleApp_Building_Header_h

#import <FacebookSDK/FacebookSDK.h>

#endif

5. 注意ポイント

Objective-C Bridging Haderをプロジェクトの欄に記述してしまうと

f:id:takeR:20141202222244p:plain

XCode6.2ではビルドエラーになる。

FacebookSDK/FacebookSDK.h file not found

f:id:takeR:20141202223455p:plain

Targetsの方に記述する必要がある。

f:id:takeR:20141202222238p:plain

参考

Using Swift with Cocoa and Objective-C: Swift and Objective-C in the Same Project

[Swift 1.1] とりあえずFacebookログインをしてみる (Xcode 6.1) - Qiita