AppleのObj-Cドキュメントから:
メソッドがオブジェクトを返す場合、nilに送信されるメッセージは0(nil)を返します。例えば:
Person *motherInLaw = [[aPerson spouse] mother];
ここでの配偶者オブジェクトがnilの場合、母親はnilに送られ、メソッドはnilを返します。
だからspouse
ここにオブジェクトを置くことができますか?オブジェクトの場合、セレクターである必要がありますか?
AppleのObj-Cドキュメントから:
メソッドがオブジェクトを返す場合、nilに送信されるメッセージは0(nil)を返します。例えば:
Person *motherInLaw = [[aPerson spouse] mother];
ここでの配偶者オブジェクトがnilの場合、母親はnilに送られ、メソッドはnilを返します。
だからspouse
ここにオブジェクトを置くことができますか?オブジェクトの場合、セレクターである必要がありますか?
セレクターはC++クラスのクラスメソッドのようなもので、呼び出すメソッドの名前であり、受け入れるパラメーターの数とタイプを定義します。それはまったくオブジェクトではありません。上記の例では、「spouse」は呼び出すメソッド名です。それは決してオブジェクトではありません。
編集:
コード
Person *motherInLaw = [[aPerson spouse] mother];
これに拡張することができます:
Person *theSpouse = [aPerson spouse];
Person *motherInLaw = [theSpouse mother];
ご覧のとおり、「mother」メソッドは「spouse」メソッドの戻り値で呼び出されます。これにより、混乱が解消されます。
文書は実際には正しいです。これは、objective-c の構文にすぎません。実際、このインスタンスでは、aPerson が配偶者の getter メソッドを呼び出しています。これが呼び出された時点で配偶者が設定されていない場合、nil が返されます。この時点で、母親の getter メソッドを配偶者に送信すると、nil へのメソッド呼び出しが発生します。
あなたが見ているのは確かにメソッドです - タイプ配偶者のオブジェクトを返すメソッドであり、私の上のポスターはすでにセレクターが何であるかを説明しています.