If you plan on using Core Data please read objc.io issue #4[1].
The reason I use Core Data is because the alternatives for data persistence are not that great. We basically have NSCoding Protocol[2] and FMDB[3]. I find both cumbersome to use.
Also, not that it matters for this conversation but it is Core Data, not CoreData.
objc.io issue 4 actually demonstrates one of the issues with Core Data: if you check the code, you see that it is not modeling the domain, instead it is encoding interactions with the database. Sigh.
I find it cumbersome because it's as much work as Core Data and seems to have many of the same API choices around threading, but I also have to write SQL. I don't like writing SQL.