2010-11-27

Cocoa Touch では Cocoa Bindings は使えない

Interface Builder User Guide: Connections and Bindings」は「About Connections and Bindings」という節で始まっている。その冒頭では Mac OS X (と iOS) アプリで用いる「接続(connection)」の型についての説明がされている。

(「Interface Builder User Guide: Connections and Bindings」より)
There are four fundamental types of connections you can create in a Mac OS X and iOS application:

  • Outlet connections
  • Action connections (Mac OS X only)
  • Event connections (iOS only)
  • Bindings (Mac OS X only)

action と event がそれぞれ、Mac OS X 専用、iOS 専用となっているのは良い。iOS アプリで action の代わりを務めるのが event だから。気になるのは最後の Bindings が Mac OS X 専用となっていること。そう、Cocoa Bindings は iOS アプリでは使えない技術なのだ(少なくとも今のところ)。

Interface Builder で Inspector を見てみる

前回の記事(→「Cocoa Bindings の使い方 #2」)で、Cocoa Bindings を設定するための Bindings パネルのスクリーンショットを載せた。このパネルは Interface Builder でインスタンスのさまざまな設定を行うための「Inspector」とツールの一部として表示されるものだ(「Inspector」は Interface Builder のメニューから「Tools」>「Inspector」で表示できる)。この「Inspector」の中には、他にも Attributes や Size を設定するためのパネルが並んでいる。

この「Inspector」を Cocoa アプリの部品と Cocoa Touch の部品でそれぞれ表示させ、そこに並んでいるパネルの数と種類を比べてみた。改めて見ると、確かに違う。Cocoa の部品のパネルに比べて、Cocoa Touch の部品のそれは明らかに数が少ない。

Interface Builder が Inspector に表示するパネル数の差
Cocoa の Table View (NSTableView)
パネルは左から順に、Attributes、Effects、Size、Bindings、Connections、Identity となっている。
Cocoa Touch の Table View (UITableView)
パネルは左から順に、Attributes、Connections、Size、、Identity となっている。

設定するためのパネルがない以上、Cocoa Touch の部品では(つまり iOS アプリでは) Cocoa Bindings が使えないことは確かなようだ。

Cocoa アプリと Cocoa Touch アプリ

以前の記事(→「欲しいのはオフライン機能 - Cocoa アプリとして作り直す #0」)で、Mac 版と iPhone アプリでなるべく設計と実装を共通化したいと書いた。そのためにも、ビュー (V) とモデル (M) の分離が明確になる Cocoa Bindings はおもしろそうだと調べ始めたんだが、Cocoa Touch で使えないとは思わなかった (´・ω・`)。まあ、iPhone アプリのコントローラ (C) が少し大きくなる程度の差で済むと思うがね。

この制約はどうしてだろう? パフォーマンス? メモリ? KVC と KVO は iOS アプリでも使えるっぽいんだけどな(iOS Reference Library に両者の Programming Guide がある)。そう言えば、ガベージコレクションも iOS アプリでは使えないんだった。デバイスに差がある(あり過ぎる)以上、しかたがないんだろうな。

どうでもいいことだけど garbage collection のカタカナ表記としては「ガベージコレクション」と「ガーベジコレクション」のどちらが適切か? ググってみると前者は 130,000 件で後者が 67,100 件。ま、根拠にするには弱いけど、どちらかと言えば前者の方がポピュラーってことか。

関連リンク

関連記事

0 件のコメント:

コメントを投稿