AppleはMac OS X v10.5においてObjective-C 2.0という名称で言語仕様の変更を行った。
ガベージコレクションの導入
世代別の保守的GCを導入し、GC管理下にあるオブジェクトは全てメモリ管理を自動化できる。なお、これに伴いCore FoundationのオブジェクトもGC管理下に置けるようになった。GCモードではマルチスレッド周りの性能が向上するとみられる。なお、先述の通りガベージコレクションはOS X 10.11を最後に廃止されている[4]。
プロパティの導入
C#などに採用されているプロパティが追加された。setter/getterの扱いが大幅に簡略化される。またKey-Value-Codingに関してドット記法が導入され、obj.propNameのようなアクセスができるようになった。メッセージ送信メタファからは逸脱した感もあるが、元々構造体が同じ記法を用いている上、メッセージ式を正確に書くよりもはるかに記述量が減るため、実利主義のObjective-Cらしい拡張と言える。
Fast Enumeration
いわゆるforeach文の導入。
プロトコルの強化
実装オプションのプロトコル定義が増えた。
Class Extensions
実装をオプションにできない無名カテゴリ。実装必須のプライベートメソッドを(インターフェース的に)公開したくない時に用いる。Objective-Cでは動的ディスパッチを行うので、非公開メソッドでも呼び出しに制限がない点に注意。
ランタイム構造の変更
クラスのposingは廃止された。その代わりにメソッドの交換(セレクタのマッピングを入れ替える)が公式に用意され、カテゴリと組み合わせることでほぼ同じ機能を実現できる。その他にも、ランタイム周りはほとんど原形を留めないほどに手が入っている。
脚注^ “世界のOSたち - 1990年代にコンピューターの未来を生み出した「NeXTSTEP」
Objective-Cに関する最初の本であり、Objective-Cを利用したオブジェクト指向システム開発に関する本。
Object Oriented Programming: An Evolutionary Approach; Brad J. Cox, Andrew J. Novobilski; Addison-Wesley Publishing Company, Reading, Massachusetts, 1991; ISBN 0-201-54834-8
(邦題:「オブジェクト指向のプログラミング」 ISBN 4-8101-8046-8)
この本はObjective-CのNeXTSTEPでの実装について記述している。NeXTSTEPが明確なターゲットだが、Objective-Cを学習するためのよい入門書となる。
NeXTSTEP Object Oriented Programming and the Objective C Language; Addison-Wesley Publishing Company, Reading, Massachusetts, 1993; ISBN 0-201-63251-9
(邦題:「OBJECT-ORIENTED PROGRAMMING AND THE OBJECTIVE-C LANGUAGE(日本語版)」 ISBN 4-7952-9636-7)
多くの実例とともに、Stepstone版とNeXT版のObjective-Cについて、両者の違いを含めて論じている。
Objective-C: Object Oriented Programming Techniques; Lewis J. Pinson, Richard S. Wiener; Addison-Wesley Publishing Company, Reading, Massachusetts, 1991; ISBN 0-201-50828-1
(邦題:「OBJECTIVE-C オブジェクト指向のプログラミング」 ISBN 4-8101-8054-9)
Objective-C、C++、Smalltalk、Object Pascal、Javaを比較しながら、オブジェクト指向プログラミングの話題を紹介している。
An Introduction to Object-Oriented Programming; Timothy Budd; Addison-Wesley Publishing Company, Reading, Massachusetts; ISBN 0-201-54709-0
(邦題:「オブジェクト指向プログラミング入門」 ISBN 4-8101-8048-4)
外部リンク.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:#f9f9f9;display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}英語版ウィキブックスに本記事に関連した解説書・教科書があります。Objective-C Programming
⇒The Objective-C Programming Language( ⇒日本語訳)Apple Inc. - Objective-C言語とはどういうものかを知ることができる文書。
ダイナミックObjective-C
表
話
編
歴
C言語
K&R
ANSI C
C89
C90
C99
C11
C17(英語版)
C2x(英語版)
Embedded C(英語版)
MISRA C
Cの機能
関数
ヘッダファイル
演算子
文字列(英語版)
文法(英語版)
プリプロセッサ(英語版)
データ型(英語版)
キーワード
フリースタンディング環境
標準Cライブラリの関数
ctype.h(英語版)
stdio.h
math.h(英語版)
stdlib.h(英語版)
string.h(英語版)
time.h
stdarg.h(英語版)
POSIXライブラリ(英語版)
標準Cライブラリ
Bionic(英語版)
libhybris(英語版)
dietlibc
EGLIBC
glibc
klibc(英語版)
マイクロソフトランタイムライブラリ(英語版)
musl
Newlib
uClibc
BSD libc
コンパイラ
ACK(英語版)
BDS-C
Clang
C++ Builder
gcc
Intel C++ Compiler
LCC(英語版)
LSI C-86
Pelles C(英語版)
PCC
TCC
Turbo C
Microsoft Visual C++
Watcom C/C++(英語版)
統合開発環境
Anjuta
Code::Blocks
CodeLite
Eclipse
Geany
Microsoft Visual Studio
NetBeans
CLion
派生言語
C++
Cg
Cω
D言語
Objective-C
Alef(英語版)
Limbo
Go
Vala
SystemC
Unified Parallel C
関連項目
IOCCC
カテゴリ
表
話
編
歴
C++
C++
C++98
C++03(英語版)
C++TR1