Short answer: CoreData is more than an ORM implementation.
Long answer:
ORM wikipedia definition:
Object-relational mapping (ORM, O / RM, and O / R mapping) in software is a programming method for converting data between incompatible types in relational databases and object oriented programming languages. This creates, in fact, a "database of virtual objects" that can be used as part of the programming language.
Put it simply, it is just an abstraction or virtualization of the level of relational persistence, which facilitates the work of accessing and writing to / from it. (Note: object-relational mapping )
So far, CoreData defines:
Master data is the structure you use to manage model-level objects in your application. It provides generalized and automated solutions to common tasks related to managing the life cycle of an object and a graphic object, including preservation.
The Coredata definition does not mention adhering to the ORM definition, although it seems to be fully compatible.
The difference I found is this: since the CoreData structure separates its abstraction level ( Managed Objects and Managed Object Contexts ) from its persistence level ( Preservation of Preservation ) through its Preservation Storage Coordinator , it can abstract objects from a relational database like sqlite, and also from any other non-relational conservation level.
To support this claim, here is NSHipster Short Description:
Contrary to popular belief, Core Data is not an object-relational Mapper, but rather a graphical object and persistence structure capable of [...]. Using Core Data as an ORM necessarily limits the capabilities of Core Data and mutates its conceptual purity.
Biasu
source share