Objective-C 2.0
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/02 08:13 UTC 版)
「Objective-C」の記事における「Objective-C 2.0」の解説
AppleはMac OS X v10.5においてObjective-C 2.0という名称で言語仕様の変更を行った。 ガベージコレクションの導入 世代別の保守的GCを導入し、GC管理下にあるオブジェクトは全てメモリ管理を自動化できる。なお、これに伴いCore FoundationのオブジェクトもGC管理下に置けるようになった。GCモードではマルチスレッド周りの性能が向上するとみられる。 なお、先述の通りガベージコレクションはOS X 10.11を最後に廃止されている。 プロパティの導入 C#などに採用されているプロパティが追加された。setter/getterの扱いが大幅に簡略化される。またKey-Value-Codingに関してドット記法が導入され、obj.propNameのようなアクセスができるようになった。メッセージ送信メタファからは逸脱した感もあるが、元々構造体が同じ記法を用いている上、メッセージ式を正確に書くよりもはるかに記述量が減るため、実利主義のObjective-Cらしい拡張と言える。 Fast Enumeration いわゆるforeach文の導入。 プロトコルの強化 実装オプションのプロトコル定義が増えた。 Class Extensions 実装をオプションにできない無名カテゴリ。実装必須のプライベートメソッドを(インターフェース的に)公開したくない時に用いる。Objective-Cでは動的ディスパッチを行うので、非公開メソッドでも呼び出しに制限がない点に注意。 ランタイム構造の変更 クラスのposingは廃止された。その代わりにメソッドの交換(セレクタのマッピングを入れ替える)が公式に用意され、カテゴリと組み合わせることでほぼ同じ機能を実現できる。その他にも、ランタイム周りはほとんど原形を留めないほどに手が入っている。
※この「Objective-C 2.0」の解説は、「Objective-C」の解説の一部です。
「Objective-C 2.0」を含む「Objective-C」の記事については、「Objective-C」の概要を参照ください。
- Objective-C 2.0のページへのリンク