All skills
avdlee avatar

/core-data-expert

@1f62be1

Expert Core Data guidance (iOS/macOS): stack setup, fetch requests & NSFetchedResultsController, saving/merge conflicts, threading & Swift Concurrency, batch operations & persistent history, migrations, performance, and NSPersistentCloudKitContainer/CloudKit sync.

Use this Skill: https://skilld.dev/gh/avdlee/core-data-agent-skill/core-data-expert

This session only. Nothing lands on disk.

referencesglossary.md

≈1.4k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Core Data Glossary

Quick reference for Core Data terminology.

Core Concepts

Core Data Apple's framework for object graph management and persistence.

Persistent Store The underlying storage (typically SQLite database) where data is saved.

Managed Object Model Describes your data schema (entities, attributes, relationships).

Entity A class definition in your data model (like a database table).

Attribute A property of an entity (like a database column).

Relationship A connection between entities (one-to-one, one-to-many, many-to-many).

Stack Components

NSPersistentContainer Encapsulates the Core Data stack (model, coordinator, contexts).

NSPersistentCloudKitContainer Extends NSPersistentContainer with CloudKit sync capabilities.

NSPersistentStoreCoordinator Manages one or more persistent stores and coordinates access.

NSManagedObjectContext Scratch pad for working with managed objects. Changes aren't persisted until saved.

NSManagedObject Base class for Core Data objects. Represents a row in a database table.

NSManagedObjectID Unique, immutable identifier for a managed object. Thread-safe.

Context Types

View Context Main queue context for UI operations. Runs on main thread.

Background Context Private queue context for heavy work. Runs on background thread.

Child Context Context with a parent context. Saves push changes to parent, not to disk.

Fetching

NSFetchRequest Describes a search for objects in the persistent store.

NSFetchedResultsController Manages fetch results for table/collection views with automatic updates.

Predicate Filter condition for fetch requests (like SQL WHERE clause).

Sort Descriptor Defines ordering for fetch results (like SQL ORDER BY).

Faulting Lazy loading mechanism. Object data loaded only when accessed.

Prefetching Loading related objects eagerly to avoid faulting.

Operations

Save Persists changes from context to persistent store.

Fetch Retrieves objects from persistent store.

Insert Creates new object in context.

Delete Marks object for deletion. Removed on save.

Refresh Reloads object from persistent store, discarding in-memory changes.

Reset Clears all objects from context, freeing memory.

Rollback Discards all unsaved changes in context.

Batch Operations

NSBatchInsertRequest Inserts multiple objects at SQL level (iOS 14+).

NSBatchDeleteRequest Deletes multiple objects at SQL level.

NSBatchUpdateRequest Updates multiple objects at SQL level.

Advanced Features

Persistent History Tracking Records all changes in a transaction log for cross-context synchronization.

Derived Attribute Computed attribute stored in database (e.g., articles.@count).

Transformable Custom type stored using value transformer.

Constraint Ensures attribute uniqueness (requires merge policy).

Merge Policy Determines how conflicts are resolved when saving.

Migration

Lightweight Migration Automatic migration for simple model changes.

Staged Migration Complex migration decomposed into steps (iOS 17+).

Deferred Migration Delays cleanup work for better performance (iOS 14+).

Composite Attribute Structured data within single attribute (iOS 17+).

Mapping Model Describes how to migrate from one model version to another.

Version Hash Checksum identifying a specific model version.

Threading

perform Executes block asynchronously on context's queue.

performAndWait Executes block synchronously on context's queue (blocks calling thread).

Thread Confinement Each context must be accessed only from its queue.

automaticallyMergesChangesFromParent Context automatically receives changes from parent context.

Validation

validateForInsert Called before inserting object.

validateForUpdate Called before updating object.

validateForDelete Called before deleting object.

Lifecycle

awakeFromInsert Called once when object first inserted.

awakeFromFetch Called when object loaded from store.

willSave Called before each save.

didSave Called after save completes.

prepareForDeletion Called when object marked for deletion.

CloudKit

Container Identifier Unique ID for CloudKit container (e.g., iCloud.com.example.app).

Development Environment CloudKit environment for testing (schema mutable).

Production Environment CloudKit environment for released apps (schema immutable).

Schema Initialization First run creates CloudKit schema from Core Data model.

Event Notification Notification sent when CloudKit sync events occur.

Debugging

SQL Debug Launch argument to log SQL queries: -com.apple.CoreData.SQLDebug 1

Concurrency Debug Launch argument to catch threading violations: -com.apple.CoreData.ConcurrencyDebug 1

Migration Debug Launch argument to log migration steps: -com.apple.CoreData.MigrationDebug 1

Common Acronyms

CD - Core Data MOC - Managed Object Context (NSManagedObjectContext) MO - Managed Object (NSManagedObject) FRC - Fetched Results Controller (NSFetchedResultsController) PSC - Persistent Store Coordinator (NSPersistentStoreCoordinator) MOD - Managed Object Model (NSManagedObjectModel)

Quick Reference

Thread-safe: NSManagedObjectID, NSPersistentStoreCoordinator Not thread-safe: NSManagedObject, NSManagedObjectContext Main thread only: View context operations Background thread: Background context operations Automatic: Lightweight migration (with NSPersistentContainer) Manual: Staged migration, custom mapping models

Source: SKILL.md on GitHub

1 warning17d5 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    The skill is a comprehensive technical guide for Apple's Core Data framework, providing expert guidance on stack setup, concurrency, performance, and CloudKit integration. It consists of instructional markdown files and code snippets that adhere to industry best practices. No malicious patterns or security vulnerabilities were detected.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW · No issues

  • Runlayer7mo

    16/16 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 1f62be1. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Activeupdated 8 months ago

README badge

README badge for avdlee/core-data-agent-skill