Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

次ページ >

Objective-C 2.0プログラミング言語

このセクションの内容:

対象読者
この書類の構成
表記規則
関連項目


オブジェクト指向によるアプリケーション開発のアプローチによって、プログラムの設計がより直観的になり、開発期間が短縮され、変更しやすくなり、理解しやすくなります。ほとんどのオブジェクト指向開発環境は、少なくとも次の3つの部分から成ります。

本書は、開発環境の第1の要素、つまりプログラミング言語とその実行環境に関するものです。Objective-C言語についてと、第2の要素であるMac OS XにおけるObjective-Cを使用したアプリケーションフレームワーク(まとめて「Cocoa」と呼びます)の基本を説明しています。Cocoaの詳細については、「Getting Started with Cocoa」を参照してください。使用する2つの主要な開発ツール、XcodeとInterface Builderについては、『Xcode User Guide』および『Interface Builder』にそれぞれ記述されています。

重要: 本書では、Mac OS Xバージョン10.5と一緒にリリースされたObjective-C言語バージョン2.0について説明します。このバージョンには、プロパティ(“プロパティ”を参照)、高速列挙(“高速列挙”を参照)、任意のプロトコル、および(64ビットプラットフォームでは)フラジャイルでないインスタンス変数など、いくつかの新しい機能が含まれています。 これらの機能は、Mac OS X 10.5より前のバージョンでは利用できませんでした。したがって、これらの機能を使用する場合は、アプリケーションはMac OS X 10.5よりも前のバージョンでは実行できません。Objective-C言語のバージョン1.0については,『Object Oriented Programming and the Objective-C Programming Language 1.0』を参照してください。

Objective-C言語は高度なオブジェクト指向プログラミングを可能にするために設計された簡単なプログラミング言語です。Objective-Cは、小規模でも強力な、標準のANSI C言語の拡張セットとして定義されます。C言語への追加部分のほとんどは、初期のオブジェクト指向言語の1つであるSmalltalkに基づいています。Objective-Cは、C言語に完全なオブジェクト指向プログラミング機能を、分かりやすい形で追加することを意図して設計されています。

本書は、オブジェクト指向プログラミングによるアプリケーション作成の経験がない方でも、オブジェクト指向の開発に馴染めることも目的としています。オブジェクト指向設計の意味の一部を解説し、オブジェクト指向プログラムを書くということが、実際にはどのような感じのことであるかを伝えます。

対象読者

本書は次のことに興味のある読者を対象としています。

本書では、Objective-Cの基盤であるオブジェクト指向モデルの紹介と、言語の完全な解説を行います。C言語に対するObjective-Cの拡張に焦点をあて、C言語そのものの説明は省きます。

本書はC言語については解説されていないため、C言語にある程度慣れていることが前提となります。しかし、それほど熟達している必要はありません。Objective-Cによるオブジェクト指向プログラミングはANSI Cの手続き型プログラミングとはかなり違っているので、熟達したCプログラマでなくても、さほど不利にはなりません。

この書類の構成

本書は複数の章と2つの付録から成ります。

次の章では、Objective-C言語について説明します。標準のCおよびC++を拡張してObjective-C言語に追加されている機能もすべて取り上げます。この章では、言語について説明していますが、ランタイムシステムの重要な要素にも触れます。

Appleのコンパイラは、GNU Compiler Collectionのコンパイラをベースにしています。Objective-Cの構文はGNU C/C++の構文のスーパーセットで、Objective-CコンパイラはC、C++、およびObjective-Cのソースコードに対応しています。コンパイラは、Objective-Cのソースファイルをファイル名拡張子.mによって認識し、標準Cの構文のみを含むファイルをファイル名拡張.cによって認識します。同様に、Objective-Cを使用するC++ファイルを拡張子.mmによって認識します。Objective-CとC++を併用する場合の他の問題については、“C++とObjective-Cの併用”の節を参照してください。

“ランタイムシステム”では、NSObjectクラスについてと、Objective-Cプログラムがランタイムシステムとどのようにやり取りするかを解説します。特に、オブジェクトの割り当ての管理、実行時における新しいクラスの動的ローディング、および他のオブジェクトへのメッセージの転送といったパラダイムを説明します。

付録には、Objective-C言語の理解に役立つ以下の参考資料が含まれています。次のものが含まれます。

表記規則

本書では、関数、メソッド、および他のプログラミング要素について説明する場合は、リテラル文字と斜体を使います。リテラル文字は、単語または文字を文字通りに受け取るべきこと(文字通りに入力すること)を表します。斜体は、他の何かを表す、あるいは変化する語を示します。たとえば、次の構文があるとします。

@interfaceClassName(CategoryName)

これは、@interfaceと2つの括弧が必須ですが、クラス名とカテゴリ名は選択できることを意味します。

コード例を示す場合、省略記号(...)は、コードの一部(しばしばかなりの量)が省略されていることを表します。

- (void)encodeWithCoder:(NSCoder *)coder
{
    [super encodeWithCoder:coder];
    ...
}

付録のリファレンスで使用する構文については、付録の中で説明します。

関連項目

Object-Oriented Programming with Objective-C』では、オブジェクト指向のプログラミングと開発をObjective-C開発者の視点から説明します。

Objective-C 2.0 Runtime Reference』では、Objective-Cのランタイムサポートライブラリのデータ構造と関数について説明します。プログラムからこれらのインターフェイスを使用して、Objective-Cのランタイムシステムとやり取りすることができます。たとえば、クラスまたはメソッドを追加したり、ロードされているクラスの全クラス定義のリストを取得したりできます。

Garbage Collection Programming Guide』では、Objective-Cで使用するガーベジコレクションシステムについて説明します。

Objective-C Release Notes』では、Mac OS Xの最新リリースにおけるObjective-Cランタイムの変更点のいくつかについて説明します。



次ページ >


Last updated: 2007-10-31




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice