The Objective-C interface uses types in the same way as the LispWorks FLI, with a restricted set of FLI types being used to describe method arguments and results. Some types perform special conversions to hide the FLI details (see Special argument and result conversion and Special method argument and result conversion).
Objective-C defines its own memory management, so most interaction with its objects occurs using foreign pointers with the FLI type descriptor objc-object-pointer. When an Objective-C object class is implemented in Lisp, there is an additional object of type standard-objc-object which is associated with the foreign pointer (see Defining Objective-C classes and methods).
When using pointers to struct types, the type must be defined using define-objc-struct rather than
The various integer types in Objective-C have corresponding standard FLI types. In addition, the Objective-C type
BOOL, which is an integer type with values
YES, has a corresponding FLI type objc-bool with values
Structures in Objective-C are like structures in the FLI, but are restricted to using other Objective-C types for the slots. The macro define-objc-struct must be used to define a structure type that is suitable for use as an Objective-C type.
LispWorks Objective-C and Cocoa Interface User Guide and Reference Manual - 21 Mar 2017