swiftからobjective-cを呼び出す必要があったので、やり方をメモ
環境
- Xcode6.1
まずはobjective-cのコードを用意します。以下が手順。
- New FileでObjective-cファイルを選択して作成する
- {@tagetname}-Bridging-Header.hと{@tagetname}Tests-Bridging-Header.hの二種類のファイルも自動作成するよう選択する
- Build Settings Swift CompilerのObjective-c Bridge Headerに上記のファイルが設定されていることを確認する
以下、サンプルです。
hファイル
#import#ifndef Test_ObjectiveCManager_h #define Test_ObjectiveCManager_h #endif @interface ObjectiveCManager : NSObject /** Returns a string. */ - (NSString *)ObjectiveCManagerString; @end
mファイル
#import "ObjectiveCManager.h" #import <Foundation/Foundation.h> @implementation ObjectiveCManager - (NSString *)ObjectiveCManagerString { return @"hello objective-c"; } @end
{@tagetname}-Bridging-Header.hファイルと{@tagetname}Tests-Bridging-Header.hファイル。両ファイルに記述しないとビルドが通らないことに注意
#import "QRBarcodeManager.h"
上記のビルドが上手くできれば、swift側でクラスを呼び出してあげればOK。swift側にimportは不要です。
var objcObj = ObjectiveCManager() var msg = objcObj.ObjectiveCManagerString(); println(msg)
以上。便利ですね。でもちょっと気持ち悪いw
0 件のコメント:
コメントを投稿