1. ホーム
  2. objective-c

[解決済み] idの意味は?

2022-10-16 10:12:34

質問

私はObjective-Cを勉強しているのですが、次のようなフレーズに出くわします。

-(id) init;

そして、私が理解しているのは id は Objective C 言語のキーワードであることは理解できますが、 "コンパイラは特に id をポインタ型変換ルールの観点から特別に扱う" とはどういう意味でしょうか?

id は自動的にその右側にあるオブジェクトをポインタとして指定するのでしょうか?

どのように解決するのですか?

id は任意の型へのポインタですが void * とは異なり、常にObjective-Cのオブジェクトを指しています。例えば、任意の型の id 型のものを NSArray に追加できますが、それらのオブジェクトは必ず retainrelease .

コンパイラは、どんなオブジェクトでも暗黙のうちに id への暗黙のキャスト、そして id を任意のオブジェクトにキャストすることができます。これは、Objective-Cの他の暗黙のキャストとは異なり、Cocoaのほとんどのコンテナ型の基礎になっています。