Of all the ways to persist information on an iOS device, CoreData is the best in its class; however, it is also one of the most misunderstood frameworks on iOS.
Several months ago I completely rewrote the data synchronization module for an application – CoreData was at the heart of this module. I ran into many performance and memory issues; I also struggled to get CoreData to do exactly what I needed. In response, I took a deep dive into CoreData. Here are the most important things I found.
I have created a public example project on Github to demonstrate how to apply what I will be describing in this post. You’ll find various live code examples below which reference code in the example repo.