2015年1月16日金曜日

swift swiftからobjective-cのコードを呼び出す

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 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...