栃木県のJavaエンジニア、WEBプログラマーのためのサイト

2016.01.28[Swift] CocoaPodsでインストールしたObjective-Cフレームワークをインポート

Bridging-Header.h

SwiftからObjective-Cで書かれたライブラリを利用する場合は、Objective-C Bridging Headerに利用するライブラリのヘッダーファイルを記述します。

例えば FMDB であればこんな感じです。

#ifndef Projectname_Projectname_Bridging_Header_h
#define Projectname_Projectname_Bridging_Header_h

/// FMDB
#import "FMDatabase.h"
#import "FMDatabaseAdditions.h"

#endif

Module Map

CocoaPodsでインストールした場合は、Clangのモジュール機能によりヘッダーファイルがモジュール化されるので、Bridging Headerを書かなくても import “モジュール名”で利用可能です。

FMDBをCocoaPodsでインストールするとモジュール化のため、以下のファイル等が生成されます。

framework module FMDB {
  umbrella header "FMDB-umbrella.h"

  export *
  module * { export * }
}
#import <UIKit/UIKit.h>

#import "FMDatabase.h"
#import "FMDatabaseAdditions.h"
#import "FMDatabasePool.h"
#import "FMDatabaseQueue.h"
#import "FMDB.h"
#import "FMResultSet.h"

FOUNDATION_EXPORT double FMDBVersionNumber;
FOUNDATION_EXPORT const unsigned char FMDBVersionString[];

FMDB.modulemap 1行目 “framework module FMDB” の「FMDB」が、モジュール名になりますので、以下のようにインポートして使用出来ます。

import FMDB

参考