Struct objc2::declare::ClassDecl [−][src]
pub struct ClassDecl { /* fields omitted */ }
Expand description
A type for declaring a new class and adding new methods and ivars to it before registering it.
Implementations
Constructs a ClassDecl
declaring a new root class with the given
name.
Returns None
if the class couldn’t be allocated.
An implementation for +initialize
must also be given; the runtime
calls this method for all classes, so it must be defined on root
classes.
Note that implementing a root class is not a simple endeavor!
For example, your class probably cannot be passed to Cocoa code unless
the entire NSObject
protocol is implemented.
Functionality it expects, like implementations of -retain
and
-release
used by ARC, will not be present otherwise.
pub unsafe fn add_method<F>(&mut self, sel: Sel, func: F) where
F: MethodImplementation<Callee = Object>,
pub unsafe fn add_method<F>(&mut self, sel: Sel, func: F) where
F: MethodImplementation<Callee = Object>,
pub unsafe fn add_class_method<F>(&mut self, sel: Sel, func: F) where
F: MethodImplementation<Callee = Class>,
pub unsafe fn add_class_method<F>(&mut self, sel: Sel, func: F) where
F: MethodImplementation<Callee = Class>,
Adds a class method with the given name and implementation.
Panics
Panics if the method wasn’t sucessfully added or if the selector and function take different numbers of arguments.
Safety
The caller must ensure that the types match those that are expected when the method is invoked from Objective-C.