| Inherits from | |
| Framework | /System/Library/Frameworks/CoreData.framework |
| Availability | Available in Mac OS X v10.4 and later.
|
| Companion guide | |
| Declared in | NSRelationshipDescription.h |
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.
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.
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.
Returns the delete rule of the receiver.
- (NSDeleteRule)deleteRule
The receiver’s delete rule.
NSRelationshipDescription.hReturns the entity description of the receiver's destination.
- (NSEntityDescription *)destinationEntity
The entity description for the receiver's destination.
NSRelationshipDescription.hReturns the relationship that represents the inverse of the receiver.
- (NSRelationshipDescription *)inverseRelationship
The relationship that represents the inverse of the receiver.
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.
NSRelationshipDescription.hReturns a Boolean value that indicates whether the receiver represents a to-many relationship.
- (BOOL)isToMany
YES if the receiver represents a to-many relationship (its maxCount is greater than 1) otherwise NO.
NSRelationshipDescription.hReturns the maximum count of the receiver.
- (NSUInteger)maxCount
The maximum count of the receiver.
NSRelationshipDescription.hReturns the minimum count of the receiver.
- (NSUInteger)minCount
The minimum count of the receiver.
NSRelationshipDescription.hSets the delete rule of the receiver.
- (void)setDeleteRule:(NSDeleteRule)rule
The delete rule for the receiver.
This method raises an exception if the receiver’s model has been used by an object graph manager.
NSRelationshipDescription.hSets the entity description for the receiver's destination.
- (void)setDestinationEntity:(NSEntityDescription *)entity
The destination entity for the receiver.
This method raises an exception if the receiver’s model has been used by an object graph manager.
NSRelationshipDescription.hSets the inverse relationship of the receiver.
- (void)setInverseRelationship:(NSRelationshipDescription *)relationship
The inverse relationship for the receiver.
This method raises an exception if the receiver’s model has been used by an object graph manager.
NSRelationshipDescription.hSets the maximum count of the receiver.
- (void)setMaxCount:(NSUInteger)maxCount
The maximum count of the receiver.
This method raises an exception if the receiver’s model has been used by an object graph manager.
NSRelationshipDescription.hSets the minimum count of the receiver.
- (void)setMinCount:(NSUInteger)minCount
The minimum count of the receiver.
This method raises an exception if the receiver’s model has been used by an object graph manager.
NSRelationshipDescription.hReturns the version hash for the receiver.
- (NSData *)versionHash
The version hash for the receiver.
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.
– versionHash (NSPropertyDescription)NSRelationshipDescription.hThese constants define what happens to relationships when an object is deleted.
typedef enum {
NSNoActionDeleteRule,
NSNullifyDeleteRule,
NSCascadeDeleteRule,
NSDenyDeleteRule
} NSDeleteRule;
NSNoActionDeleteRuleIf 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
NSNullifyDeleteRuleIf 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
NSCascadeDeleteRuleIf 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
NSDenyDeleteRuleIf 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
NSRelationshipDescription.h
Last updated: 2006-07-11