The class from which all classes that implement an Objective-C class should inherit.
objc
:init-function | |
:pointer |
An optional Objective-C foreign object pointer for the object. |
objc-object-pointer
The abstract class standard-objc-object provides the framework for subclasses to implement an Objective-C class. Subclasses are typically defined using define-objc-class, which allows the Objective-C class name to be specified. Instances of such a subclass have an associated Objective-C foreign object whose pointer can be retrieved using the objc-object-pointer accessor. The function objc-object-from-pointer can be used to obtain the object again from the Objective-C foreign pointer.
There are two ways that subclasses of standard-objc-object can be made:
alloc method. If the init-function initarg is not specified, the object is initialized by calling its init method. If the init-function initarg is specified, it is called during initialization with the newly allocated Objective-C foreign object and the initargs that were given to make-instance, and it should call the appropriate initialization method for that object and return its result. This allows a specific initialization method, such as initWithFrame:, to be called if required.allocWithZone: method (or a method such as alloc that calls allocWithZone:). In this case, an instance of the subclass of standard-objc-object is made with the value of the pointer initarg being a pointer to the newly allocated Objective-C foreign object.
(objc:define-objc-class my-view ()
()
(:objc-class-name "MyView")
(:objc-superclass-name "NSView"))
(defun my-view-init-function (pointer &key frame)
(objc:invoke pointer "initWithFrame:" frame))
(make-instance 'my-view
:init-function 'my-view-init-function
:frame #(0 0 100 50)
:allow-other-keys t)))
Note that :allow-other-keys t is needed because :frame is not a known initarg for my-view.
define-objc-class
objc-object-destroyed
objc-object-from-pointer
objc-object-pointer
LispWorks Objective-C and Cocoa Interface User Guide and Reference Manual - 18 Feb 2025 15:39:48