Objective-C
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

Objective-C 2.0

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」”. マイナビニュース (2012年6月28日). 2023年11月13日閲覧。
^ “Why Objective-C?” (英語). developer.apple.com. 2018年4月6日閲覧。
^ macやiOSの標準APIでは基底クラスNSObjectに参照カウントを実装してあり、他のクラスがNSObjectを継承している。

Apple IOs API Reference #NSObject(2012年1月20日閲覧)

Apple mac API Reference #NSObject(2012年1月20日閲覧)

高度なメモリ管理プログラミングガイド

荻原 剛志『Mac OS X プログラミング入門 Objective-C』広文社,2001年,ISBN 4-87778-068-8

^ a b “Xcode Release Notes 。Xcode 8.3” (英語). 2021年7月7日閲覧。

参考文献

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



D言語

Objective-C

Alef(英語版)

Limbo

Go

Vala

SystemC

Unified Parallel C

関連項目

IOCCC



カテゴリ










C++


C++

C++98

C++03(英語版)

C++TR1


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:49 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef