Swift import Objective-C

Objective-Cに肩まで浸っていた人間が、Swiftに手を出すことになった際の困ったこと備忘録。
基本的に、検索ワードにしか見えない記事タイトルでお送りします。

 

・それで、今日は何があったのか?

Objective-Cで作ったクラスをSwiftで読み込みたい!
なんて時にそもそものimportで躓くという屈辱的な体験をしたのでメモ書き。
Swiftだとimportは自動でやってくれるので、能動的にやろうとしたらちょっと一手間必要っぽい。

・結局、何をしたら動くのか?

結論から言えば、自動importの対象にObjective-Cのクラスを含めてあげれば良い。
以下、手順。
1.プロジェクトのBuild Settingを選択
2.Swift Compiler – Code Generation項目のObjective-C Bridging Headerを選択
3.importさせたいヘッダファイルを突っ込んでやる、ただしフルパス指定
※/$(SRCROOT)/$(PROJECT)/hoge.hみたいな感じでやれば吉

 

・実装の際の注意点

基本的に上記のObjective-C Bridging Headerで読み込めるファイルは一つだけ。
なので、大元になるヘッダファイルに多数のファイルを読み込ませるようにしよう。
この辺りは自分でフレームワークを作成している人ならイメージしやすい、はず。
Foundation.hみたいにすれば良し。

 

・備考とか

Swiftの自動importは${ProductModuleName}-Bridging-Header.hというファイルが担っている。
自分で作成する場合、上記の命名に倣うと統一感が出て良いかもしれない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>