Leopard解体新書--第3回:ブリッジサポート - RubyCocoaの秘密 - (page 2)

木下誠(HMDT)

2007-11-06 12:04

フレームワークのメタ情報を記述するブリッジサポート

 プログラミングの世界で「ブリッジ」といえば、あるプログラミング言語から別の言語への「架け橋」である。ブリッジを作成するには、その呼び出しに関する詳細な情報が必要になる。たとえば、RubyからObjective-Cで書かれたCocoaの機能を呼び出したい場合、Cocoaのインタフェースがどのようになっているのか、詳しく知る必要がある。この情報は、ヘッダファイルと呼ばれるものにも書かれているのだが、これだけでは充分ではないのだ。

 そこで、フレームワークの呼び出しに必要な情報をすべて書き出す技術が、ブリッジサポートだ。実例を見てみよう。

/System/Library/Frameworks/AppKit.framework/Resources/BridgeSupport/AppKit.bridgesupport

 というファイルがある。これを開いてほしい。

 このファイルは、テキストのXMLファイルになっている。Cocoaのユーザインタフェース周りである、Application Kitにアクセスするための情報が記述されているのだ。その一部を抜き出してみよう。





  ...
  
    
      
    
    
      
    
    
      
    
    ...

 抜き出したのは、ウインドウを表すクラスであるNSWindowクラスに関するものだ。このクラスが持つメソッドが、すべて記述されているのが分かる。この他にも、定数名、構造体、関数、依存するフレームワークなど、そのフレームワークを利用する際に必要なメタ情報が、すべて含まれている。

 これを使えば、Rubyからのブリッジを作成することができる。さらに、.bridgesupportファイルは、他の多くのフレームワークにも含まれている。それらが持つ機能を、Rubyから利用可能になる可能性があるのだ。

 ちなみに、RubyCocoaでのこのファイルの読み込みは、

/System/Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_import.rb

 の周辺で行われている。興味のある方は、こちらを参照してほしい。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    「デジタル・フォレンジック」から始まるセキュリティ災禍論--活用したいIT業界の防災マニュアル

  2. 運用管理

    「無線LANがつながらない」という問い合わせにAIで対応、トラブル解決の切り札とは

  3. 運用管理

    Oracle DatabaseのAzure移行時におけるポイント、移行前に確認しておきたい障害対策

  4. 運用管理

    Google Chrome ブラウザ がセキュリティを強化、ゼロトラスト移行で高まるブラウザの重要性

  5. ビジネスアプリケーション

    技術進化でさらに発展するデータサイエンス/アナリティクス、最新の6大トレンドを解説

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]