define-objc-class-method (name result-type [result-style]) (object-argspec argspec*) form*
A string naming the method to define.
An Objective-C FLI type.
An optional keyword specifying the result conversion style, either :lisp
or :foreign
.
A symbol naming a variable.
A symbol naming a class defined with define-objc-class.
An optional symbol naming a variable.
A symbol naming a variable.
An Objective-C FLI type.
An optional symbol or list specifying the argument conversion style.
A form.
The macro define-objc-class-method
defines the Objective-C class method name for the Objective-C classes associated with class-name. The name should be a concatenation of the message name and its argument names, including the colons, for example "setWidth:height:"
.
If the define-objc-class definition of class-name specifies the (:objc-class-name
objc-class-name)
option, then the method is added to the Objective-C class objc-class-name. Otherwise, the method is added to the Objective-C class of every subclass of class-name that specifies the :objc-class-name
option, allowing a mixin class to define methods that become part of the implementation of its subclasses (see Abstract classes).
When the method is invoked, each form is evaluated in sequence with object-var bound to the (sub)class of class-name, pointer-var (if specified) bound to the receiver foreign pointer to the Objective-C class and each arg-var bound to the corresponding method argument.
See define-objc-method for details of the argument and result conversion.
The forms can use functions such as invoke to invoke other class methods on the pointer-var. The macro current-super
can be used to obtain an object that allows class methods in the superclass to be invoked (like super
in Objective-C).
LispWorks Objective-C and Cocoa Interface User Guide and Reference Manual - 21 Mar 2017