クックパッド開発者ブログスマートフォン用の表示で見るクックパッド開発者ブログ2014-12-02SwiftとObjective-Cのコードを1つのプロジェクトでつかうこんにちは。モバイルファースト室の中村(@_nkmrh)です。仕事でSwiftを使うことはまだないのでSwiftについて色々気になっている今日この頃です。今回はSwiftとObjective-C(以下、Obj-C)を1つのプロジェクト内でつかう方法と、両者の相違点について気になった点を紹介したいと思います。Obj-Cまず、SwiftからObj-Cを使う方法です。name]-Bridging-Header.hを作成します。[ProductModuleName]は通常ProductNameと同じです。)(アンダースコア)に置換されます。name]-Bridging-Header.hと指定しプロジェクトに追加します。Fileに、SwiftからインポートしたいObj-Cヘッダーファイルを書きます。Headerに作成したファイルのパスを指定します。fileに書かれたObj-Cヘッダーファイルが、全てのSwiftファイルから見えるようになりました。次のようにSwiftからXYZCustomViewControllerのインスタンスが作成できます。Swift今度は逆に、Obj-CからSwiftを使う方法です。Obj-CからSwiftをつかうには、次のインポート文を書きます。[ProductModuleName]-Swift.hファイルはXcodeから自動生成されるもので、開発者が用意する必要はありません。これでObj-CからSwiftを使うことができます。configureView:controller.view];型の違いObj-Cの変数をSwiftで使う場合、両者の型が違うのでコンバージョンやダウンキャストをします。CGFloatをFloat型に代入するには、コンバージョンしたい変数を括弧で囲みコンバージョンします。NSDictionaryをDictionaryに、NSArrayをArrayに代入するにはas演算子でダウンキャストします。Array<AnyObject>デリゲートパターンObj-Cではデリゲートオブジェクトに対してメッセージ送信可能かrespondsToSelector:メソッドで確認後メッセージ送信していました。Swiftではif-letシンタックスで次のようにスッキリと書けます。println(value)}?演算子でデリゲートがnilかどうか、メソッドが定義されているかどうかチェックしています。キー値監視NSObjectを継承して作成したSwiftクラスは、キー値監視が使えます。監視したいプロパティにdynamic修飾子を追記します。}}まとめObj-CとSwiftを同時に使う方法と、両者の相違点について書きました。Objective-Cから気になった箇所を紹介させていただきました。Storeで無料でダウンロードできるので、もしまだという方は1度目を通してみると良いかと思います。インタプリタの開発をしている笹田です。Swiftで感じた将来こんにちは。使ったセキュリティログ検索基盤の構築サービス特性にあった検索システムの設計戦略クックパッド採用説明会「クックパッドはサービスの作り手を採用したいんです。/*}*/スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。