NAME
Message - Portable Object Compiler Message class
Message
Inherits from:
Object
Maturity Index:
Experimental
Class Description
Message instances are used for forwarding Objective-C messages. When an object doesn't respond to a message, the doesNotUnderstand: method is invoked, with an argument that is an instance of this class :
- doesNotUnderstand:msg
{
[msg sentTo:someObject];
return self;
}
The user may override -doesNotUnderstand: to send a sentTo: message, which will forward the message to someObject . If someObject doesn't respond to the message, it will receive a doesNotUnderstand: message, and so on.
Note:
To forward class (factory) methods, override the class method +doesNotUnderstand: .
Also see Object's doesNotUnderstand: method for more details.
Method types
Creating Messages
* selector:dispatch:args:
Querying Messages
* selector
Sending Messages
* sentTo:
Methods
selector:dispatch:args:
+ selector :(SEL) s dispatch :(ARGIMP) d args :(void *) a
Creates a Message instance with the indicated selector name and pointer to argument structure. The argument structure for a message consists of return value of the method (if not void), followed by the arguments of the method :
struct {
int ret;
int a;
double d;
}
The above structure corresponds to a method such as (int)foo:(int)a bar:(double)d.
The dispatch argument is a (compiler generated) function that decodes the arguments from the argument structure, and dispatches the messages.
selector
- ( SEL ) selector
Returns the selector for this message.
sentTo:
- sentTo : receiver
Forwards the message to receiver (if it's not nil ) and returns the message itself ( self ), not the return value of the message that was forwarded to receiver . The latter return value is associated to the Message instance, so that it can be returned to the sender of the message that caused a doesNotUnderstand: message to be sent.