

今後はSwiftでiOSアプリケーションを開発していきたいのですが、今まで作成したObjective-
Cのソースコードも活用していきたいと思っています。Objective-
CのソースコードをSwiftプロジェクトに取り込んで使用するにはどのように設定したらよいでしょうか？


CC BY-SA 3.0
2014-11-25T12:33:46.070
186
2014-12-02T00:25:39.593
37
question
xcode swift objective-c
SwiftプロジェクトでObjective-Cソースファイルを使う方法


まず、`Objective-C` と `Swift` の間を橋渡しする Bridging Header ファイルを作成する必要があります。

[XCode 6.1
日本語化計画目次](http://www.xcode601.com/Swift/Swift1.0.0/SwFObjC/SwiBaSe7.html#SwiBaSe1005IOCS02)が詳しいです。

他にも相互運用の際の注意点などがまとまっていて、オススメです。


CC BY-SA 3.0
2014-12-01T06:55:05.977
204
2014-12-01T06:55:05.977
41
186
answer


<プロダクト名>-Bridging-Header.hを作成して、SwiftからObjective-Cのクラスを参照できるようにする必要があります。

以下に新規SwiftプロジェクトでObjective-Cのクラスを使うまでの手順を記載します。

  1. 新規Swiftプロジェクトを作成
  2. Objective-Cで任意のクラスを作成
[code]     #import <Foundation/Foundation.h>

    
    @interface ObjcClass : NSObject
    -(void)log;
    @end
    @implementation ObjcClass
    -(void)log{
        NSLog(@"Objc Class Log") ;
    }
    @end
    
[/code]

  3. Bridging-Header.hを作成するか聞かれるのでYESを選択

  4. Swiftから使用したいObjective-Cのクラスを-Bridging-Header.hにインポート
[code]     #import "ObjcClass.h"

    
[/code]

  5. swiftファイルからObjective-Cのクラスを使用するコードを記述
[code]     func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        var objcClass = ObjcClass()
        objcClass.log()
        // Override point for customization after application launch.
        return true
    }
    
[/code]

[サンプルプロジェクト](https://github.com/sekitaka/SwiftInObjcProj)も載せておきますね。


CC BY-SA 3.0
2014-12-02T00:25:39.593
207
2014-12-02T00:25:39.593
131
186
answer