Core Data

Core Data is an object graph and persistence framework provided by Apple in the macOS and iOS operating systems.

Among other tasks, it handles change management, serializing to disk, memory footprint minimization and queries against the data.

When combined with Cocoa bindings the UI can display many components of the data model without needing background code.

In order to manage these, the author intends to read the vCards into objects, and then store them in a single larger XML file.

This portion of Core Data is similar to the original Enterprise Objects Framework (EOF) system, in that one can write fairly sophisticated queries.

EOF's purpose was twofold: first, to connect to the database engine and hide the implementation details; second, to read the data out of the relational format and translate that into a set of objects.

The EOF object model was deliberately designed to make the resulting programs work in a document-like fashion; the user could edit the data locally in memory, and then write out all changes with a single Save command.

Many developers complained that this state management code was far too useful to be isolated in EOF, and it was later moved into the Cocoa API during the transition to Mac OS X.

In this role, the really useful parts of EOF were those that automatically built the object sets from the raw data, and then tracked them.