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.
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.
[1] http://www.objc.io/issue-4/editorial.html
[2] https://developer.apple.com/library/mac/documentation/Cocoa/...
[3] https://github.com/ccgus/fmdb