




 
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 "descrription")
will return a foreign pointer, whereas the form
(invoke-into 'string object "description")