Creates and returns an instance of a scriptable class, setting its contents and properties, for insertion into the relationship identified by the key.
SDK
- macOS 10.5+
Framework
- Foundation
Declaration
- (id)newScriptingObjectOfClass:(Class)objectClass forValueForKey:(NSString *)key withContentsValue:(id)contentsValue properties:(NSDictionary<NSString *,id> *)properties;
Parameters
class
The class of the scriptable object to be created.
key
A key that identifies the relationship into which the new class object will be inserted.
contentsValue
Specifies the contents of the object to be created. This may be
nil
. (See also the Discussion section.)properties
The properties to be set in the new object. (See also the Discussion section.)
Return Value
The new object. Returns nil
if an error occurs.
Discussion
You can override the new
method to take more control when your application is sent a make
command. This method is invoked on the prospective container of the new object. The contents
and properties
are derived from the with contents
and with properties
parameters of the make
command. The returned objects or objects are then inserted into the container using key-value coding.
When this method is invoked by Cocoa, neither the contents value nor the properties will have yet been coerced using the NSScript
method coerce
. For sdef-declared scriptability, however, the types of the passed-in objects reliably match the relevant sdef declarations.
The default implementation of this method creates new scripting objects by sending alloc
to a class and init
to the resulting object. You override this method for situations where this is not sufficient, such as in Core Data applications, in which new objects must be initialized with [NSManaged
.