SwiftData는 iOS 17에서 도입된 새로운 데이터 영속성 프레임워크로, Core
Data의 발전된 형태입니다. SwiftUI와 잘 통합되며 Swift Concurrency를
지원합니다.
let newItem = Item(name: "새 아이템", timestamp: Date())
modelContext.insert(newItem)
do {
try modelContext.save()
} catch {
print("저장 실패: \(error)")
}
@Query(sort: \[SortDescriptor(\.timestamp, order: .reverse)])
var items: [Item]
또는 수동으로 fetch:
let descriptor = FetchDescriptor<Item>(sortBy: [SortDescriptor(\.timestamp)])
let results = try? modelContext.fetch(descriptor)
item.name = "변경된 이름"
do {
try modelContext.save()
} catch {
print("업데이트 실패: \(error)")
}
modelContext.delete(item)
do {
try modelContext.save()
} catch {
print("삭제 실패: \(error)")
}
insert() 후 save()\@Query 또는 fetch()\save()\delete() 후 save()SwiftData는 SwiftUI와 결합 시 자동으로 View 업데이트가 이루어져 생산성이
크게 향상됩니다.