Eine Nachricht ist der Name eines Selektors und die Parameter für diesen Selektor.
Ein Selektor ist ein Symbol.
Eine Methode ist ein Stück Code in einer Klasse, die durch einen Selektor identifiziert wird.
Mit anderen Worten [foo bar: baz]
: "Senden Sie die @selector(bar:)
mit parameter aufgerufene Nachricht baz
an object foo
. Sie können diese Nachricht an viele verschiedene Objekte senden.
Im Gegensatz dazu könnte die Methode bar:
für a so Foo
aussehen
-(int)bar:(int)n {
return n + 1;
}
aber für eine FooTwo
könnte aussehen
-(int)bar:(int)n {
return n + 2;
}
(Ich hoffe, ich habe die richtige Syntax; es ist schon eine Weile her, seit ich Objective-C das letzte Mal berührt habe.)
Wenn Sie die Nachricht senden, leitet der Objective-C-Kernel die Nachricht weiter, an foo
die entschieden wird, ob die Nachricht verstanden wird. Dies wird basierend darauf entschieden, ob eine von diesem Selektor identifizierte Methode gefunden wird.
Zwei gleichnamige Methoden und eine Meldung.
Es ist auch möglich, dass ein Objekt eine bestimmte Nachricht (oder eine Reihe von Nachrichten) zur Verarbeitung einfach an ein anderes Objekt weiterleitet. In diesem Fall senden Sie eine Nachricht an dieses Proxy-Objekt, für das es keine entsprechenden Methoden gibt , und der Proxy leitet die Nachricht an das umschlossene Objekt weiter.