Swiftで作成中のプロジェクトにObjective-Cのファイルを導入する

Using Swift with Cocoa and Objective-C (Swift 2): Swift and Objective-C in the Same Project
こちらのページにやり方書いてあるので、これに従ってやっていこう。

  1. Objective-Cのファイルを追加する。

  2. 追加するとXcodeが尋ねてくるので、YESとすると、bridging-header.hが作成される。

  3. bridging header fileに、Objective-Cで作成したクラスの必要なヘッダファイルをimportする。

  4. これで、Objective-Cで作ったクラスが扱えるようになる。

やってみよう

RPMediaPlayer.h
RPMediaPlayer.m
RPItem.h
RPItem.m

この4つのファイルを使用したい。

RPMediaPlayer.hはAVFoundationフレームワークと、”RPItem.h”をimportしているのだけども、この場合はどうなるのか?

RPMediaPlayer.h

#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>

#import "RPItem.h"

@interface RPMediaPlayer : NSObject

- (void)play;

@end

RPMediaPlayer.hファイル追加。そして、RPMediaPlayer.mファイルを追加したところで、Xcodeが尋ねてきた。
ss 2015-10-11 9.43.27
“Create Bridging Header”を選択した。
すると、プロジェクトに、プロジェクト名-Bridging-Header.hファイルが加わっている。

RPItem.h、RPItem.mをプロジェクトに追加。

プロジェクト名-Bridging-Header.hに、

#import “RPMediaPlayer.h”

と記述。

これで、Swift側のファイルから使えるようになった。

ViewController.Swift

import UIKit

class ViewController: UIViewController {
    
    let player = RPMediaPlayer()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        player.play()
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

これでちゃんと動作した。

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください