【特集】

Leopardで刷新されたMac OS X対応開発言語「Objective-C 2.0」の真価を探る

1 Objective-C 2.0は移行する価値あるか?

  • <<
  • <

1/8

Objective-C 2.0は移行する価値あるか?

Leopardの調子がいい。Appleの喧伝によれば、新OSを発売したときは毎回そうなのだが、今までに最も売れたMac OSであり、300の新機能がある。何もこれらの数字をあげなくとも、今までの積み重ねの上に、「使いやすさ」というMacの永遠の命題を追求し続けていることは、ユーザの方なら感じ取れるだろう。

さて、そんなMac OS Xを支えるものと言えばアプリケーションフレームワークCocoaであり、そのCocoaを支えるものと言えばプログラミング言語Objective-Cである。もはやCocoa専用言語の感もあるObjective-Cだが、登場から長い年月が経ち、いささか古くさく見えるのも確かだ。そこで、LeopardではObjective-Cのオーバーホールが行われ、Objective-C 2.0という名称とともにバージョンアップを遂げたのだ。

なかなか刺激的な名前だが、実際の使い勝手はどうなのだろうか。Objective-C 2.0の新機能としては、次の3つを挙げることが出来る。

  • ガベージコレクション
  • プロパティ
  • Fast Enumeration

この特集では従来のObjective-CからObjective-C 2.0への移行を考察する、という視点で、この新言語を詳しく紹介しよう。

ちなみに、本稿ではAppleの表記にならい、Objective-C 2.0に対して、従来のものをObjective-C 1.0と呼ぶことにする。

Objective-C 2.0を有効にする

まず、Objective-C 2.0を使う環境を整えよう。とは言っても、Leopard + Xcode 3.0の環境(概要はこちらの記事を参照)では、デフォルトでObjective-C 2.0が使用可能になっている。逆に言えば、ランタイムをObjective-C 1.0として動作させることは出来ないようだ。Objective-C 2.0は後方互換になっているので、問題はないだろうが。

Xcodeのビルド設定のうち、Objective-C 2.0に関するものは、ガベージコレクションの有効化だ。ガベージコレクションのオン/オフは切り替えることができ、3つの選択肢がある。「サポートなし」「サポートあり」そして「必須」だ。

ガベージコレクションの設定

ガベージコレクションは、ランタイムが起動するときにオン/オフが行われる。「サポートなし」ならオフ。「サポートあり」または「必須」ならばオンになる。

気を付けなくてはいけないのは、プラグインのような他のアプリケーションに読み込まれるタイプのバイナリだ。プラグインと、それを読み込むアプリケーションとの間で、ガベージコレクションの要/不要があっている必要がある。もしプラグインを「必須」でコンパイルした場合、アプリケーション側でガベーコレクションが有効である必要がある。プラグインが「サポートあり」の場合は、どのアプリケーションでも読み込むことができる。

また、ターゲットにも注意しよう。Objective-C 2.0の文法は、Leopardのgccでしかコンパイルできないし、コンパイルされたコードは、LeopardのObjective-Cランタイムでしか動作しない。Xcodeでは、どのバージョンのMac OS Xをターゲットとしてコンパイルするか指定出来るのだが、ここでLeopardよりも前のバージョンを指定すると、Objective-C 2.0のコードはビルドが通らなくなる。

コンパイル時にはLeopard(Mac OS X 10.5)を指定しなければならない

これらのことを考慮して、Objective-C 2.0に移行するかどうか、検討するようにしよう。

  • <<
  • <

1/8

インデックス

目次
(1) Objective-C 2.0は移行する価値あるか?
(2) ガーベジコレクション導入によるプログラムへの影響
(3) ガーベジコレクションの仕組み
(4) ガベージコレクションの動作の確認
(5) ガベージコクレションへの移行
(6) プロパティ - コードの記述量を減らす新記法
(7) プロパティの属性
(8) Fast Enmeration

もっと見る



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

求人情報