多くのObjective-C開発者は、初心者でも専門家でも、id
をオブジェクトをキャストして、結果を出すことなく(コンパイラから)少なくとも魔法のキャッチオール型であるかのように思えます。 。しかし、実際にid
の定義を見ると、objc_object
へのポインタにすぎません。このように、文字通り「Objective-Cオブジェクト」ですが、何もid
から「降下」することはできません。それはちょうど読みidは "ルートタイプ"か、それとも単にタイプですか?
@interface NSObject : id
:
今@interface NSObject
を、私はid
年代はずタイプの中立性は、そのの副作用であることをしっかりと信念のだとしてもNSObjectののヘッダーが見えませんまだ考えていないものがあるので、私は尋ねなければならない:
id
タイプの主な機能は何ですか?
+1言語と実装の区別。 – utahwithak
@bbumのidの定義に似ています。彼はそれをObjCの「中立型」をシミュレートする「あらゆるメッセージを受け取ることができる型」と表現した。 – CodaFi
それは良い説明です、そうです。 –