Core Data is by far the worst framework I have ever had to work with. Or is it?
It has a steep learning curve. Though once you’ve got your head around it, it doesn’t seem so bad after all.
I’m really starting to get accustomed to it. There are just some principles one needs to know in order to really not hate it.
I use the MagicalRecord library on top of it, and the mogenerator tool to make everything manageable.
I’ve got multi-threaded code and it cooperates (so far).
My approach is to keep most update operations off of the main thread, and saving that background context will update the main thread context, which in turn updates all the NSFetchedResultsControllers, and now my table views just animate those changes nicely!
I think, after numerous attempts, I am finally getting to be fit with CoreData and now can use it as my main persistence framework from now on. (Until they scrap it and move for something more Swift-style…)