Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

Next Page > Hide TOC

NSRelationshipDescription Class Reference

Inherits from
Framework
/System/Library/Frameworks/CoreData.framework
Availability
Available in Mac OS X v10.4 and later.
Companion guide
Declared in
NSRelationshipDescription.h

Overview

The NSRelationshipDescription class is used to describe relationships of an entity in an NSEntityDescription object.

NSRelationshipDescription extends NSPropertyDescription to describe features appropriate to relationships, including cardinality (the number of objects allowed in the relationship), the destination entity, and delete rules.

Cardinality

The maximum and minimum counts for a relationship indicate the number of objects referenced (1 for a to-one relationship, -1 means undefined). Note that the counts are only enforced if the relationship value in the containing object is not nil. That is, provided that the relationship value is optional, there may be zero objects in the relationship, which might be less than the minimum count.

Editing Relationship Descriptions

Relationship descriptions are editable until they are used by an object graph manager. This allows you to create or modify them dynamically. However, once a description is used (when the managed object model to which it belongs is associated with a persistent store coordinator), it must not (indeed cannot) be changed. This is enforced at runtime: any attempt to mutate a model or any of its sub-objects after the model is associated with a persistent store coordinator causes an exception to be thrown. If you need to modify a model that is in use, create a copy, modify the copy, and then discard the objects with the old model.

Tasks

Getting and Setting Type Information

Getting and Setting Delete Rules

Cardinality

Versioning Support

Instance Methods

deleteRule

Returns the delete rule of the receiver.

- (NSDeleteRule)deleteRule

Return Value

The receiver’s delete rule.

Availability
See Also
Declared In
NSRelationshipDescription.h

destinationEntity

Returns the entity description of the receiver's destination.

- (NSEntityDescription *)destinationEntity

Return Value

The entity description for the receiver's destination.

Availability
See Also
Declared In
NSRelationshipDescription.h

inverseRelationship

Returns the relationship that represents the inverse of the receiver.

- (NSRelationshipDescription *)inverseRelationship

Return Value

The relationship that represents the inverse of the receiver.

Discussion

Given a to-many relationship “employees” between a Department entity and an Employee entity (a department may have many employees), and a to-one relationship “department” between an Employee entity and a Department entity (an employee may belong to only one department), the inverse of the “department” relationship is the “employees” relationship.

Availability
See Also
Declared In
NSRelationshipDescription.h

isToMany

Returns a Boolean value that indicates whether the receiver represents a to-many relationship.

- (BOOL)isToMany

Return Value

YES if the receiver represents a to-many relationship (its maxCount is greater than 1) otherwise NO.

Availability
See Also
Declared In
NSRelationshipDescription.h

maxCount

Returns the maximum count of the receiver.

- (NSUInteger)maxCount

Return Value

The maximum count of the receiver.

Availability
See Also
Declared In
NSRelationshipDescription.h

minCount

Returns the minimum count of the receiver.

- (NSUInteger)minCount

Return Value

The minimum count of the receiver.

Availability
See Also
Declared In
NSRelationshipDescription.h

setDeleteRule:

Sets the delete rule of the receiver.

- (void)setDeleteRule:(NSDeleteRule)rule

Parameters
rule

The delete rule for the receiver.

Special Considerations

This method raises an exception if the receiver’s model has been used by an object graph manager.

Availability
See Also
Declared In
NSRelationshipDescription.h

setDestinationEntity:

Sets the entity description for the receiver's destination.

- (void)setDestinationEntity:(NSEntityDescription *)entity

Parameters
entity

The destination entity for the receiver.

Special Considerations

This method raises an exception if the receiver’s model has been used by an object graph manager.

Availability
See Also
Declared In
NSRelationshipDescription.h

setInverseRelationship:

Sets the inverse relationship of the receiver.

- (void)setInverseRelationship:(NSRelationshipDescription *)relationship

Parameters
relationship

The inverse relationship for the receiver.

Special Considerations

This method raises an exception if the receiver’s model has been used by an object graph manager.

Availability
See Also
Declared In
NSRelationshipDescription.h

setMaxCount:

Sets the maximum count of the receiver.

- (void)setMaxCount:(NSUInteger)maxCount

Parameters
maxCount

The maximum count of the receiver.

Special Considerations

This method raises an exception if the receiver’s model has been used by an object graph manager.

Availability
See Also
Declared In
NSRelationshipDescription.h

setMinCount:

Sets the minimum count of the receiver.

- (void)setMinCount:(NSUInteger)minCount

Parameters
minCount

The minimum count of the receiver.

Special Considerations

This method raises an exception if the receiver’s model has been used by an object graph manager.

Availability
See Also
Declared In
NSRelationshipDescription.h

versionHash

Returns the version hash for the receiver.

- (NSData *)versionHash

Return Value

The version hash for the receiver.

Discussion

The version hash is used to uniquely identify an attribute based on its configuration. This value includes the versionHash information from NSPropertyDescription, the name of the destination entity and the inverse relationship, and the min and max count.

Availability
See Also
Declared In
NSRelationshipDescription.h

Constants

NSDeleteRule

These constants define what happens to relationships when an object is deleted.

typedef enum {
    NSNoActionDeleteRule,
    NSNullifyDeleteRule,
    NSCascadeDeleteRule,
    NSDenyDeleteRule
} NSDeleteRule;

Constants
NSNoActionDeleteRule

If the object is deleted, no modifications are made to objects at the destination of the relationship.

If you use this rule, you are responsible for maintaining the integrity of the object graph. This rule is strongly discouraged for all but advanced users. You should normally use NSNullifyDeleteRule instead.

Available in Mac OS X v10.4 and later.

Declared in NSRelationshipDescription.h

NSNullifyDeleteRule

If the object is deleted, back pointers from the objects to which it is related are nullified.

Available in Mac OS X v10.4 and later.

Declared in NSRelationshipDescription.h

NSCascadeDeleteRule

If the object is deleted, the destination object or objects of this relationship are also deleted.

Available in Mac OS X v10.4 and later.

Declared in NSRelationshipDescription.h

NSDenyDeleteRule

If the destination of this relationship is not nil, the delete creates a validation error.

Available in Mac OS X v10.4 and later.

Declared in NSRelationshipDescription.h

Availability
Declared In
NSRelationshipDescription.h

Next Page > Hide TOC


Last updated: 2006-07-11




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice