[−][src]Trait objc::Message
Types that may be sent Objective-C messages. For example: objects, classes, and blocks.
Provided methods
unsafe fn send_message<A, R>(
&self,
sel: Sel,
args: A
) -> Result<R, MessageError> where
Self: Sized,
A: MessageArguments,
R: Any,
&self,
sel: Sel,
args: A
) -> Result<R, MessageError> where
Self: Sized,
A: MessageArguments,
R: Any,
Sends a message to self with the given selector and arguments.
The correct version of objc_msgSend
will be chosen based on the
return type. For more information, see Apple's documentation:
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ObjCRuntimeRef/index.html#//apple_ref/doc/uid/TP40001418-CH1g-88778
If the selector is known at compile-time, it is recommended to use the
msg_send!
macro rather than this method.
fn verify_message<A, R>(&self, sel: Sel) -> Result<(), MessageError> where
Self: Sized,
A: EncodeArguments,
R: Encode,
Self: Sized,
A: EncodeArguments,
R: Encode,
Verifies that the argument and return types match the encoding of the method for the given selector.
This will look up the encoding of the method for the given selector, sel
,
and return a MessageError
if any encodings differ for the arguments A
and return type R
.
Example
let obj: &Object; let sel = sel!(isKindOfClass:); // Verify isKindOfClass: takes one Class and returns a BOOL let result = obj.verify_message::<(&Class,), BOOL>(sel); assert!(result.is_ok());