Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > Objective-Cとの共存

Objective-Cとの共存

Objective-Cと書き方はかなり違っていますが、共存が可能です。簡単な例を利用して説明します。 参考:SwiftとObjective-Cを共存させる

Objective-Cと共存させる準備

それでは、Swiftのswift-salarymanプロジェクトの中に、objective-Cで作成したiphone-tora-no-maki様クラスを追加してみます。

プロジェクト追加説明画像

New->File->Cocoa Touch Classで新規ファイルを作成

上記ファイルを作成すると、swift-salaryman-Bridging-Header.hが生成されます。どうやら、このファイルにObjective-Cのヘッダーファイルを記載すると、 Swiftから読み出せるようです。 ファイル選択説明画像

クラス追加画像

渓谷画面説明画像

ファイル追加画像

swift-salaryman-Bridging-Header.hの中身

ヘッダファイル中身画像


//swift-salaryman-Bridging-Header.hの中身。真っ白のファイルなので以下を追加します。
#import "iphone-tora-no-maki-sama.h"

iphone-tora-no-maki-sama.hの中身。ここに関数を書き込みます。


//iphone-tora-no-maki-sama.hの中身。interfaceだけのおなじみObjectiveCのヘッダファイル

@interface iphone_tora_no_maki_sama : NSObject
- (NSString *)HelloSwiftSalaryman:(NSString *)string yourname:(NSString *)string2;
@end

iphone-tora-no-maki-sama.mの中身。ここに関数の中身を実装します。


//iphone-tora-no-maki-sama.mの中身。ここに関数の実処理を記載します。
#import "iphone-tora-no-maki-sama.h"

@implementation iphone_tora_no_maki_sama
- (NSString *)HelloSwiftSalaryman:(NSString *)string yourname:(NSString *)string2;
{
    return [NSString stringWithFormat:@"私は%@です。貴方は%@です", string, string2];
}
@end

共存作業


//これをSwiftから実行してみます。
  override func viewDidLoad() {
        super.viewDidLoad()
        
        var objc = iphone_tora_no_maki_sama();
        var msg = objc.HelloSwiftSalaryman("iPhone虎の巻", yourname: "Swiftサラリーマン")
        print(msg);
        
    }
//以下が出力されました
私はiPhone虎の巻です。貴方はSwiftサラリーマンです

更新(2015/2/25)

どうやらObjective-Cとの共存方法が変わったようですので解説します。

参考:Swift Bridging Header import issue

自動でヘッダファイルが含まれないようでした(XCode6.1.1)。以下の様にヘッダファイルを追加してください。

  • xcodeprojと同じディレクトリにヘッダを追加する。XCode->New File->Header作成 サンプル画像
  • import追加する。※この際間違った箇所でHeaderファイルを作成する(xcodeproj以外のディレクトリ)だと認識しないので注意! サンプル画像
  • Build Settingsで「SWIFT_OBJC_BRIDGING_HEADER」を検索して、ヘッダファイル名を追加する サンプル画像

↓こんな記事もありますよ!

Facebook SDKを試してみる#3(再調査)

SDKのインストーラが起動しても結局frameworkをドラッグドロップしなちゃ追加できない、面倒臭い、と発言してしまったのですが、 どうやらSDKをインストーラにてインストールした場合(SDK4.1)は、importするだけでどうやらSDKが追加できるとかなんとか。

新しくなったLawsonの無料WiFiを試してみた

ネットでローソン無料Wifiを調べていたのですがネットを接続するにはアプリが必要との誤情報が多かった(今まではアプリが必要だった)ですが、2015年の6月からはアプリの必要ありません。 Wifiで接続して登録すればPCからでも利用できました。手順を記載してまいります。

AppleWatchとiPhone連携をナターシャさんのデモを参考に調査

先日Swiftサラリーマンに関してTwitterでつぶやいてくださっていたまっちょさん に教えていただいたAppleWatchアプリ作成に関する海外のWatchKitのナターシャさんの記事(Architecting Your App for the Apple Watch)を教えていただきました、 動画やプレゼンもあり英語でしたがサンプルコードも付いていて分かりやすかったです!
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!