BLOGワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。Swift今回のエンジニアブログ担当の山下です。先月Objective-Cに代わるiOSアプリ開発言語としてSwiftが発表されました。今後Swiftによってよりモダンで安全なiOSアプリ開発が可能になるのはありがたいことです。SwiftはObjective-Cとの親和性も考慮されており、Objective-Cで書かれた過去の資産は有効活用出来ます。今回は2つの言語間での連携についてまとめてみました。6のベータ版で開発することになります。今回はなんと一般公開されています。下記のURLからダウンロードし、インストールを行ってください。4を使用していますSwiftからObjective-Cのクラスを参照するまずObjective-Cで書かれたクラスをSwiftからコールしてみます。betaを開き、新しいプロジェクトを作成してください。Applicationを選択し、LanguageはSwiftを選択します。これでSwiftのプロジェクトが作成されます。ファイル一覧を見てみると、AppDelegate等のクラスは.swiftファイルに一本化されています。TouchでおなじみのメソッドはSwiftで書き直されています。呼び出されるObjective-Cのクラスを作成します。Classを選択します。クラス名や親クラスを指定する画面では、記述する言語が選択できるようになっていますので、Objective-Cを選択しましょう。その後ファイルの保存先を決めると、次のようなメッセージが表示されます。headerと呼ばれるファイルにヘッダファイルのインポート文を書くことで可能になります。プロジェクト名>-Bridging-Header.hという名前でそのヘッダファイルがプロジェクトに追加されます。ファイルを開き、今回のクラスのimport文を以下のように追加します。Objective-Cクラスを簡単に実装してみます。インスタンスメソッドとして文字列と数値を結合して返すメソッドを実装します。このクラスをSwiftから参照してみましょう。ViewController.swiftを開き、以下のように実装します。参考までにほぼ同じ意味のObjective-Cコードをコメントとして残してみました。Swiftは型推論やイニシャライズメソッド、メソッドの呼び方の変化等々でよりシンプルな記述が可能になっています。以上で実装は終わりです。実行してみると以下のような結果になります。123Objective-CからSwiftのクラスを参照する次は逆に、Objective-CからSwiftのメソッドをコールしてみます。Classを作成して下さい。親クラスはNSObjectで、言語は今度はSwiftを選択します。作成したら以下のように実装します。先ほどObj-Cで実装したものと機能的には同じです。これをObjective-Cからコールします。先ほど作成したObjective-Cクラスを流用し、Swiftで書かれたクラスを呼ぶように変更してみましょう。プロジェクト名>-Swift.h"というファイルをインポートすることでSwiftのクラスを参照出来るようになります。これを実行してみましょう。Swiftと言語を超えたコールの連鎖が起こっています。4よりSwiftにアクセス制御が追加されました。privateの3種類があり、それぞれ以下のような意味合いを持ちます。public:同一モジュール、モジュールをimportしているモジュールの全てからアクセス可能internal:同一モジュールからアクセス可能private:同一ファイルからのみアクセス可能アクセス修飾子を指定しない場合のデフォルト設定はinternalがデフォルトで指定されます。Swiftでアクセス修飾子を指定した場合、Objective-Cからはどう見えるのか確認してみました。先ほど作ったクラスのメソッドをprivateにし、ビルドしてみます。ビルドした結果がこちら。コンパイルエラーとなりました。private指定により隠蔽されているため、Objective-C側では該当するセレクタが見つからずエラーとなります。Objective-CからSwiftをコールする際にも、アクセス制御が有効であることが確認出来ました。いかがでしたでしょうか。このようにあまり手間がかからず言語間の連携ができるため、Swiftへの移行がスムーズに行えると思います。既存プロジェクトに機能追加する際はこれを機にSwiftに挑戦してみてください。17:20SwiftとObjective-Cを共存させるTweet関連記事2015-04-24iOSでRealmを触ってみよう!今回のエンジニアブログを担当する村田です。今回のエンジニアブログ担当の山下です。Blo...2015-03-06Xcodeの独自FileTemplate今回エンジニアブログを担当する戸田です。...2015-03-03FirebaseでiOSアプリを作ってみよう!今回のエンジニアブログを担当する村田です。今回は、とあるイ...2014-10-07Swift版AFNetworkingのAlamofireを使ってみよう!今回のエンジニアブログを担当する村田です。採用情報ワンダープラネットではモバイルゲーム開発者を募集しております。(S編)C/C++でネットワークプログラミングをやってみよう(2)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。