25

私はObjective-Cを使い始めようとしているCおよびC++プログラマーです。しかし、言語と標準ライブラリの標準ドキュメントがまったくないことに、私は本当に戸惑っています。ISO規格がないことは理解できますが、参考資料はありませんか?そして、誰もこの状況についてあまり心配していないように見えるのはどうしてですか?(確かに、「参照」、「ドキュメント」、「標準」はすべて過負荷の用語であるため、Googleがそのようなことをするのは難しいです。したがって、重要な何かを見逃した可能性があります。)

この質問は、同じことを尋ねるのに近づいています。Objective-Cの実装方法を説明するドキュメントはどこにありますか。提供された唯一の答えは、「Appleが公開した、数年前の実装に非常に近いこのソースコードを読んでください。 、 多分"。

このページ:http ://clang.llvm.org/docs/ObjectiveCLiterals.htmlには、Objective-Cの正式な文法のスニペットが含まれていますが、皮肉なことに、Clangが機能を停止して独自に追加した機能を説明するコンテキストにあります。そして、他の誰もサポートしていません。ここに別の文法があります:http ://www.omnigroup.com/mailman/archive/macosx-dev/2001-March/022979.htmlしかし、それは10年以上前のものです。

質問を最小限に絞り込むために:「オブジェクト」によって提供されることが保証されているメソッドと、各メソッドの動作を知りたいです。他の言語の場合、このタイプの情報は通常、次のようなものによって提供されます。http: //docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html

4

3 に答える 3

15

残念ながら、C++ や C のような ObjC の標準はありません。Apple は言語の主要なユーザーでありドライバーであり、Apple のコンパイラ実装 (Clang の ObjC ビット) が事実上の標準です。彼らの古いドキュメント(リンク切れ) "The Objective-C Programming Language" は、散文版に近いものであり、他の言語の標準の精度にはほど遠いものでした (そして、標準よりも遅れる傾向があります)。コンパイラ)。

Web 上のどこかにまだ出回っている可能性がありますが、最新ではありません。「Objective-C によるプログラミング」は、彼らの意図した代替品のようです (ただし、これも標準のようなものではありません)

ティムの削除された回答の下にあるコメント(10k リンクのみ)については、Cocoa ルート クラスはNSObjectであり、そのインターフェイスは文書化されていますが、そのソースは利用できません。NSObjectプロトコルは、Cocoa オブジェクトの機能の非常に重要な部分でもあることに注意してください。Apple のランタイムはオープンソースであり、* という名前のルート クラスがありObjectます。デモンストレーションのために想定しています。Cocoa プログラミングでは使用されません。

もちろん、あなたはすでにこれらすべてについて知っています。あなたの質問に対する直接的な答えは、「ありません」です。ただし、bbum が指摘しているように、ほとんどの構文は C と同じです。 (はい、そこからコメントをコピーしてこの回答の冒頭に貼り付けました)


*質問で言っていることとは反対に、これは実際の最新のランタイムであることに注意してください。

于 2012-06-13T03:18:17.117 に答える
5

私はあなたの質問を正しく理解していると思うので、それに応じて答えます...

AppleDeveloperLibraryのドキュメントを強くお勧めします。ここにあなたが始めるためのいくつかの基本的なガイドがあります:

Objective-Cプログラミングの概念

Objective-Cを使用したプログラミング

ココアの基礎ガイド

iOSアプリプログラミング

そこにあるドキュメントは、Objective-CとCocoaのベストプラクティスとコーディング標準の決定的な情報源です。多数のトピックに関するドキュメントが他にもたくさんあるので、必ずそのWebサイトをチェックしてください。

また、オブジェクトで使用できるメソッドを知る方法についても質問しました。それを知るために、クラスリファレンスをチェックすることができます。

例えば:

NSObjectクラスリファレンス

ガイドとクラス参照の違いは、ガイドはコードの背後にある概念に関するものであるのに対し、クラス参照はクラスで使用可能なメソッドとプロパティのリストであるということです。

これがお役に立てば幸いです。

于 2012-06-12T03:44:23.027 に答える