swiftdata-inheritance

Clarify SwiftData class inheritance patterns for hierarchical models.

1|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/venomez-viper/PathWise --skill swiftdata-inheritance-venomez-viper
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: swiftdata-inheritance
Source: https://github.com/venomez-viper/PathWise/tree/main/.claude/skills/swiftdata/inheritance
Command: npx skills add https://github.com/venomez-viper/PathWise --skill swiftdata-inheritance-venomez-viper

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

SwiftData inheritance modeling can be challenging when deciding between inheritance, enums, or protocols, annotating models, and enabling correct type-based querying across hierarchies.

Core Features & Use Cases

  • Clear criteria for when to use class inheritance vs enums.
  • Guidance on annotating base and subclass models with @Model.
  • Instructions for configuring queries that span type hierarchies and for managing migrations.

Quick Start

Annotate the base and all subclasses with @Model, choose between inheritance and enums based on domain needs, and plan your migration strategy.

Frequently Asked Questions about swiftdata-inheritance

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use SwiftData class inheritance for hierarchical models?

SwiftData class inheritance for hierarchical models requires annotating both the base class and all subclasses with the @Model macro to correctly establish polymorphic relationships and enable cross-hierarchy querying.

When should I use SwiftData inheritance versus enums for domain modeling?

Use SwiftData inheritance when you need shared properties and polymorphic querying across a type hierarchy, but choose enums when your domain requires mutually exclusive states without complex subclass relationships or cross-hierarchy data fetching.

Do I need to annotate SwiftData subclasses with @Model separately?

Yes, annotating SwiftData subclasses with @Model separately is required to ensure the schema correctly recognizes the subclass relationships and allows type-based querying across the entire inheritance hierarchy.

Can I query across a SwiftData type hierarchy to fetch subclasses?

Querying across a SwiftData type hierarchy allows you to fetch subclasses by configuring queries against the base class, returning all inherited subclass instances through polymorphic model relationships.

What are the schema migration considerations for SwiftData inheritance?

Schema migration for SwiftData inheritance requires planning when adding or modifying base and subclass relationships, ensuring hierarchical model changes propagate correctly without breaking existing type-based queries.