Instance Method

newScriptingObjectOfClass:forValueForKey:withContentsValue:properties:

Creates and returns an instance of a scriptable class, setting its contents and properties, for insertion into the relationship identified by the key.

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 newScriptingObjectOfClass 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 contentsValue 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 NSScriptKeyValueCoding method coerceValue:forKey:. 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 [NSManagedObject initWithEntity:insertIntoManagedObjectContext:].

See Also

Scripting

classCode

The receiver's Apple event type code, as stored in the NSScriptClassDescription object for the object’s class.

className

A string containing the name of the class.

- copyScriptingValue:forKey:withProperties:

Creates and returns one or more scripting objects to be inserted into the specified relationship by copying the passed-in value and setting the properties in the copied object or objects.

scriptingProperties

An NSString-keyed dictionary of the receiver's scriptable properties.

- scriptingValueForSpecifier:

Given an object specifier, returns the specified object or objects in the receiving container.