2012-06-06 13 views
23

私はObjective-Cを使い始めたCとC++のプログラマーです。私は本当に、言語と標準ライブラリのための標準文書の明らかな完全な欠如によって、わかりません。私はISO標準がないことを理解できますが、参考資料はありませんそして、この状態について非常に心配する人はいないでしょうか? (確かに、 "参照"、 "文書"、 "標準"はすべて重複しているので、このようなことはGoogleにとっては難しいです)。Objective-C標準のドキュメント

この質問は同じことを尋ねることに近い:Where can i find a document explaining how Objective-C is implementedと唯一の回答は、「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

+1

+1、良い質問とよく研究されています。 [正しい人](http://stackoverflow.com/tags/objective-c/topusers)のために、次回から適切なタグを使用してより良い可視性を保証してください。また、タグ付けする前にタグwikiを読んで、その意味があなたが意図しているものであることを確認してください。 –

+0

本当に良い質問です。 NSObject([iOS](https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html)/ [OS X](https:// developer .apple.com/library/mac /#documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html))はルートクラスbtwです。 –

答えて

5

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

私は非常にApple Developer Libraryで文書をお勧めします。ここでは、始めるためのカップルの基本的なガイドです:

Concepts in Objective-C Programming

Programming with Objective-C

Cocoa Fundamentals Guide

iOS App Programming

は、文書のObjective-CとCocoaのベストプラクティスのための決定的なソースがありますおよびコーディング標準。多くのトピックにはさらに多くの文書がありますので、そのWebサイトを確認してください。

また、どのメソッドがオブジェクトに使用できるかを知る方法についても尋ねました。それを知るには、クラス参照をチェックアウトすることができます。

例えば:

NSObject Class Reference

ガイドおよびクラス参照との間の差は、クラス参照が利用可能なメソッドおよびプロパティのリストであるのに対し、ガイドは、コードの背後にある概念の詳細であるということですクラスのために。

これが役に立った。

14

残念ながら、C++やCのように、ObjCの標準は存在しません。Appleが言語の主なユーザーでありドライバであるため、コンパイラの実装(ClangのObjCビット)はデファクトスタンダードです。彼らの古い文書(broken link) "The Objective-C Programming Language"は、散文版と同じくらい近くにあり、他の言語の標準のいずれにも近い精度ではありませんでした(そして、コンパイラに遅れがちです)。

ウェブ上でまだどこかに浮いているかもしれませんが、最新のものではありません。 "Programming with Objective-C"はその意図した置き換えになります(ただし、はありません。は標準と同じです)。

Timの削除済み回答のyour comment(10kリンクのみ)については、ココアのルートクラスはNSObjectで、そのインターフェイスはis documentedですが、ソースは利用できません。 NSObject protocolは、Cocoaオブジェクトの機能の非常に重要な部分でもあることに注意してください。 Appleのランタイムはopen-source、*であり、ルートクラスはObjectとなっています。私はデモンストレーションを目的としています。これはCocoaプログラミングでは使用されません。

あなたはすでにこれについてすべて知っています。あなたの質問への直接的な答えは、「存在しない」ということです。 bbumが指摘しているように、文法のほとんどはCと同じです:Authoritative description of ObjectiveC string literals?(はい、そこから私のコメントをコピーしてこの回答の冒頭に貼り付けます)


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

1

は(あなたの質問の日付に応じて)私はちょうど今、あなたは3年前にされている場所だ

(リンクを参照)構文などを含めてのObjective-Cの言語定義の少なくとも一部を発見します:私はObjective-Cに着手し始めていますが、文法、キーワードなどの正確な意味と定義を参照できる参考マニュアルはないように思えます。

私は、ココア(Cocoa Core Competencies)に関連する文書の中に、少なくともいくつかは見つかっていることを発見しました。たとえば、リンクはキーワード "@property"の定義にジャンプします。

私のPOVでは、これはCocoaにのみ関連しているだけでなく、一般にCのObjective-C言語拡張を定義しています。なぜなら、私は "Cocoa"と書かれた文書でそれを検索しなかったのです。