---
title: Core Data stack
framework: coredata
role: collectionGroup
role_heading: API Collection
path: coredata/core-data-stack
---

# Core Data stack

Manage and persist your app’s model layer.

## Overview

Overview Core Data provides a set of classes that collaboratively support your app’s model layer: An instance of NSManagedObjectModel describes your app’s types, including their properties and relationships. An instance of NSManagedObjectContext tracks changes to instances of your app’s types. An instance of NSPersistentStoreCoordinator saves and fetches instances of your app’s types from stores.

You use an NSPersistentContainer instance to set up the model, context, and store coordinator simultaneously.

## Topics

### Stack Setup

- [NSPersistentContainer](coredata/nspersistentcontainer.md)

### Object Modeling

- [NSManagedObjectModel](coredata/nsmanagedobjectmodel.md)
- [NSEntityDescription](coredata/nsentitydescription.md)
- [NSPropertyDescription](coredata/nspropertydescription.md)
- [NSAttributeDescription](coredata/nsattributedescription.md)
- [NSDerivedAttributeDescription](coredata/nsderivedattributedescription.md)
- [NSRelationshipDescription](coredata/nsrelationshipdescription.md)

### Object Management

- [NSManagedObjectContext](coredata/nsmanagedobjectcontext.md)
- [NSManagedObject](coredata/nsmanagedobject.md)
- [NSManagedObjectID](coredata/nsmanagedobjectid.md)

### Store Coordination

- [NSPersistentStoreCoordinator](coredata/nspersistentstorecoordinator.md)
- [NSPersistentStore](coredata/nspersistentstore.md)
- [NSPersistentStoreDescription](coredata/nspersistentstoredescription.md)
- [NSPersistentStoreRequest](coredata/nspersistentstorerequest.md)
- [NSPersistentStoreResult](coredata/nspersistentstoreresult.md)
- [NSPersistentStoreAsynchronousResult](coredata/nspersistentstoreasynchronousresult.md)
- [NSSaveChangesRequest](coredata/nssavechangesrequest.md)
- [NSAtomicStore](coredata/nsatomicstore.md)
- [NSAtomicStoreCacheNode](coredata/nsatomicstorecachenode.md)
- [NSIncrementalStore](coredata/nsincrementalstore.md)
- [NSIncrementalStoreNode](coredata/nsincrementalstorenode.md)

## See Also

### Essentials

- [Creating a Core Data model](coredata/creating-a-core-data-model.md)
- [Setting up a Core Data stack](coredata/setting-up-a-core-data-stack.md)
- [Handling Different Data Types in Core Data](coredata/handling-different-data-types-in-core-data.md)
- [Linking Data Between Two Core Data Stores](coredata/linking-data-between-two-core-data-stores.md)
