Class

NSClassDescription

An abstract class that provides the interface for querying the relationships and properties of a class.

Declaration

@interface NSClassDescription : NSObject

Overview

Concrete subclasses of NSClassDescription provide the available attributes of objects of a particular class and the relationships between that class and other classes. Defining these relationships between classes allows for more intelligent and flexible manipulation of objects with key-value coding.

It is important to note that there are no class descriptions by default. To use NSClassDescription objects in your code you have to implement them for your model classes. For all concrete subclasses, you must provide implementations for all instance methods of NSClassDescription. (NSClassDescription provides only the implementation for the class methods that maintain the cache of registered class descriptions.) Once created, you must register a class description with the NSClassDescription method registerClassDescription:forClass:.

You can use the NSString objects in the arrays returned by methods such as attributeKeys and toManyRelationshipKeys to access—using key-value coding—the properties of an instance of the class to which a class description object corresponds. For more about attributes and relationships, see Cocoa Fundamentals Guide. For more about key-value coding, see Key-Value Coding Programming Guide.

NSScriptClassDescription, which is used to map the relationships between scriptable classes, is the only concrete subclass of NSClassDescription provided as part of the Cocoa framework.

Topics

Working with class descriptions

+ classDescriptionForClass:

Returns the class description for a given class.

+ invalidateClassDescriptionCache

Removes all NSClassDescription objects from the cache.

+ registerClassDescription:forClass:

Registers an NSClassDescription object for a given class in the NSClassDescription cache.

Attribute keys

attributeKeys

Overridden by subclasses to return the names of attributes of instances of the described class.

Relationship keys

- inverseForRelationshipKey:

Overridden by subclasses to return the name of the inverse relationship from a relationship specified by a given key.

toManyRelationshipKeys

Overridden by subclasses to return the keys for the to-many relationship properties of instances of the described class.

toOneRelationshipKeys

Overridden by subclasses to return the keys for the to-one relationship properties of instances of the described class.

Notifications

NSClassDescriptionNeededForClassNotification

Posted by classDescriptionForClass: when a class description cannot be found for a class.

Relationships

Inherits From

See Also

Script Dictionary Description

NSScriptSuiteRegistry

The top-level repository of scriptability information for an app at runtime.

NSScriptClassDescription

A scriptable class that a macOS app supports.

NSScriptCommandDescription

A script command that a macOS app supports.