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"); }
と指定する。