Objective-Cで作成されたFrameworkを読み込み、Swiftで呼び出す。
サンプルとしてGameFeatSDKを使用。
(1)Bridging-Header.hを作成
Objctive-CのFrameworkをimportするため
「GameFeatKit-Bridging-Header.h」
というヘッダーファイルを作成する。
※「GameFeatKit」の部分は任意で変更可能。
(2)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
=====
■呼び出し方法
@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");
}
と指定する。