Objective-C
framework
SDK
Swift

SwiftでObjective-CのFrameworkを読み込む方法

More than 3 years have passed since last update.

Objective-Cで作成されたFrameworkを読み込み、Swiftで呼び出す。

サンプルとしてGameFeatSDKを使用。


(1)Bridging-Header.hを作成

Objctive-CのFrameworkをimportするため

「GameFeatKit-Bridging-Header.h」

というヘッダーファイルを作成する。

※「GameFeatKit」の部分は任意で変更可能。


(2)Bridging-Header.hを編集


GameFeatKit-Bridging-Header.h

#import <GameFeatKit/GFController.h>



(3)Bridging-Header.hを読み込む

[Build Settings]の[Objective-C Bridging Header]に

GameFeatKit-Bridging-Header.h

を指定する

$(SRCROOT)/$(PROJECT)/GameFeatKit-Bridging-Header.h

スクリーンショット 2014-06-08 17.47.51.png

=====


■呼び出し方法

@Obj-C

[GFController activateGF:@"メディアID" useCustom:YES useIcon:YES usePopup:YES];

@Swift

GFController.activateGF("メディアID", useCustom: true, useIcon: true, usePopup: true);

このような形で呼び出すことができる。

Delegateに関しても同様に

@Obj-C

@interface UITestViewController : UIViewController <GFViewDelegate> {

@Swift

class UITestViewController: UIViewController, GFViewDelegate {

@Obj-C

- (void)didShowGameFeat{

 NSLog(@"didShowGameFeat");

}

- (void)didCloseGameFeat{

 NSLog(@"didCloseGameFeat");

}

- (void)didGetGfAds:(NSArray *)lists {

 NSLog(@"didGetGfAds");

 NSLog(@"%@", lists);

}

- (void)failGetGfAds {

 NSLog(@"failGetGfAds");

}

@Swift

func didShowGameFeat(){

 println("didShowGameFeat");

}

func didCloseGameFeat(){

 println("didCloseGameFeat");

}

func didGetGfAds(lists:NSArray){

 for v:NSDictionary! in lists as AnyObject[]{

  let app:String = v.objectForKey("app") as String;

  let strTitle:String = v.objectForKey("title") as String;

  let strUrl:String = v.objectForKey("url") as String;

  println("\(app) : \(strTitle) \(strUrl)");

 }

}

func failGetGfAds(){

 println("failGetGfAds");

}

と指定する。