What is Core Data?
Let's start by taking a quote directly from Apple: Core Data is a framework for managing and persisting an object graph. Apple does not call Core Data a database, even though, behind the scenes, it saves data to a SQLite file. Core Data is very hard to explain to someone new to programming or to someone who has come from a different programming language. However, in iOS 10, Core Data has been greatly simplified. Having a general understanding of what Core Data does and how it works is sufficient for our purposes in this book.
When using the Core Data framework, you should be familiar with the Managed Object Model, the Managed Object Context, and the Persistent Store Coordinator. Let's look at a diagram to get a better understanding of how they interact with each other:
NSManagedObjectModel
The Managed Object Model represents the data model of your Core Data application. The Managed Object Model will interact with all of your data models (also known as entities...