UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
データ・研究 · SKILL.md

ios-persistence

ios-persistence

Implement local persistence with SwiftData, Core Data, and secure storage. Use when setting up SwiftData models, Core Data stacks, or local persistence in iOS.

Independent GitHub snapshot · Automated classification · Original documentation governs

スキルの説明

GitHub

name: ios-persistence description: Implement local persistence with SwiftData, Core Data, and secure storage. Use when setting up SwiftData models, Core Data stacks, or local persistence in iOS. metadata: triggers: files: - '/*.xcdatamodeld' - '/*Model.swift' keywords: - PersistentContainer - FetchRequest - ManagedObject - Query - ModelContainer - Repository

iOS Persistence

Priority: P0 (CRITICAL)

Implementation Workflow

  1. Choose storage tier — SwiftData for iOS 17+, Core Data for legacy, Apple secure credential storage for secrets, UserDefaults for flags only.
  2. Define models — Use @Model macro (SwiftData) or .xcdatamodeld (Core Data).
  3. Configure container — Use @MainActor for ModelContainer (SwiftData) or NSPersistentContainer (Core Data).
  4. Perform background writes — Use newBackgroundContext() (Core Data) to avoid UI lag; never heavy I/O on viewContext.
  5. Secure sensitive data — Use secure storage for tokens and PII; never store in UserDefaults.

See SwiftData and Core Data implementation examples

Anti-Patterns

  • No Heavy I/O on viewContext: Use private background contexts
  • No String-based Predicates: Use KeyPaths or generated helpers
  • No Missing Merge Strategy: Set the merge policy (mergePolicy) explicitly (e.g., mergeByPropertyObjectTrump)

References

保存したスキル