[TIL] SwiftData CRUD

Eden·2025년 9월 2일

SwiftData는 iOS 17에서 도입된 새로운 데이터 영속성 프레임워크로, Core
Data의 발전된 형태입니다. SwiftUI와 잘 통합되며 Swift Concurrency를
지원합니다.


1. Create (생성)

let newItem = Item(name: "새 아이템", timestamp: Date())
modelContext.insert(newItem)

do {
    try modelContext.save()
} catch {
    print("저장 실패: \(error)")
}

2. Read (조회)

@Query(sort: \[SortDescriptor(\.timestamp, order: .reverse)]) 
var items: [Item]

또는 수동으로 fetch:

let descriptor = FetchDescriptor<Item>(sortBy: [SortDescriptor(\.timestamp)])
let results = try? modelContext.fetch(descriptor)

3. Update (수정)

item.name = "변경된 이름"

do {
    try modelContext.save()
} catch {
    print("업데이트 실패: \(error)")
}

4. Delete (삭제)

modelContext.delete(item)

do {
    try modelContext.save()
} catch {
    print("삭제 실패: \(error)")
}

핵심 요약

  • Createinsert()save()\
  • Read@Query 또는 fetch()\
  • Update → 속성 변경 후 save()\
  • Deletedelete()save()

SwiftData는 SwiftUI와 결합 시 자동으로 View 업데이트가 이루어져 생산성이
크게 향상됩니다.

profile
iOS Dev

0개의 댓글