|
|
Log In | Not a Member? |
Contact ADC |
| < 前ページ次ページ > |
この章では、静的な型定義の仕組みについて説明し、もともと備わっているダイナミズムを一時的に回避する方法など、Objective-Cの他の機能についても説明します。
Objective-Cのオブジェクトは動的な構成要素です。オブジェクトに関する決定の可能なかぎり多くが、コンパイル時ではなく実行時に行われます。
オブジェクトは動的に型定義されます。ソースコードでは(コンパイル時に)、オブジェクトのクラスに関係なく、オブジェクトポインタはid型であることができます。id変数の実際のクラス(および個々のメソッドとデータ構造体)はプログラムが実行されるまで決まりません。
メッセージとメソッドは、メッセージングの仕組みで説明されているように、動的にバインドされています。ランタイムプロシージャは、メッセージのメソッドセレクタをレシーバに「属する」メソッド実装と対応付けます。
これらの機能はオブジェクト指向プログラムに非常に高い柔軟性と能力をもたらしますが、支払うべき代償もあります。たとえば、メッセージは関数呼び出しよりも若干低速で(もっとも、ランタイムシステムの効率によりそれほど低速ではありません)、コンパイラはid変数の正確な型(クラス)をチェックすることができません。
適切なコンパイル時の型チェックを可能にし、コードを自己文書化するために、Objective-Cでは、オブジェクトを汎用的にidとして型定義するのではなく、クラス名で静的に型定義できます。また、操作を実行時からコンパイル時に戻すために、オブジェクト指向機能の一部をオフにすることもできます。
| < 前ページ次ページ > |
Last updated: 2007-10-31
|
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 |