The Objective-C classes
NSString
and
NSArray
are used extensively in Cocoa to represent strings and arrays of various objects. When a method that returns these types is called with invoke, the result is a foreign pointer of type objc-object-pointer as for other classes.
In order to obtain a more useful Lisp value, invoke-into can be used by specifying a type as the extra initial argument. For a method that returns
NSString
, the symbol
string
can be specified to cause the foreign object to be converted to a string. For a method that returns
NSArray
, the symbol
array
can be specified and the foreign object is converted to an array of foreign pointers. Alternatively a type such as
(array string)
can be specified and the foreign object is converted to an array of strings.
(invoke object "description")
will return a foreign pointer, whereas the form
(invoke-into 'string object "description")
LispWorks Objective-C and Cocoa Interface User Guide and Reference Manual - 15 Dec 2011