18.8. Implementing Relationships in Core Data
Problem
You want to be able to link your managed objects to each
other: for instance, linking a Person
to the Home
he lives in.
Solution
Use inverse relationships in the model editor.
Discussion
Relationships in Core Data can be one-to-one, inverse one-to-many, or inverse many-to-many. Here is an example of each type of relationship:
- One-to-one relationship
An example is the relationship between a person and her nose. Each person can have only one nose, and each nose can belong to only one person.
- Inverse one-to-many relationship
An example is the relationship between an employee and his manager. The employee can have only one direct manager, but his manager can have multiple employees working for her. Here, the relationship of the employee with the manager is one-to-one, but from the manager’s perspective, the relationship is one (manager) to many (employees); hence the word inverse.
- Inverse many-to-many relationship
An example is the relationship between a person and a car. One car can be used by more than one person, and one person can have more than one car.
In Core Data, you can create one-to-one relationships, but I highly recommend that you avoid doing so because, going back to the example in the preceding list, the person will know what nose she has, but the nose will not know who it belongs to. Please note that this is a different one-to-one model than what you might have seen in other database management systems where Object A and Object ...
Get iOS 7 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.