Crossing To-Many Relationships with Cocoa Bindings

Last Revision:
Version 2.0, 2013-04-04
Updated project format.
(Full Revision History)
Build Requirements:
Xcode 4.6 or later, OS X 10.7 or later.
Runtime Requirements:
OS X 10.7 or later.

This sample shows how you can use array controllers (instances of NSArrayController) to create a user interface that traverses multiple (in this case two) to-many relationships. In particular, it illustrates the use of the @distinctUnionOfSets collection operator to display the aggregation of the objects in a to-many relationship derived from another to-many relationship; that is, given A ->> B ->> C, it shows all the Cs associated with a given A. The sample also demonstrates use of conditional bindings, and integration with Core Data. No custom code is required to support the application user interface.