Core Data에서 데이터를 저장(Create), 불러오기(Read), 수정(Update), 삭제(Delete)하는 기본적인 CRUD 기능을 구현하는 방법 정리
Core Data 스택 설정
import CoreData class CoreDataManager { static let shared = CoreDataManager() let persistentContainer: NSPersistentContainer = { let container = NSPersistentContainer(name: "MyAppModel") container.loadPersistentStores { _, error in if let error = error { fatalError("Core Data error: \(error)") } } return container }() var context: NSManagedObjectContext { return persistentContainer.viewContext } }
데이터 생성(Create)
func createUser(name: String, email: String) { let user = UserEntity(context: CoreDataManager.shared.context) user.name = name user.email = email saveContext() }
데이터 불러오기(Read)
func fetchUsers() -> [UserEntity] { let request: NSFetchRequest<UserEntity> = UserEntity.fetchRequest() do { return try CoreDataManager.shared.context.fetch(request) } catch { print("Fetch error: \(error)") return [] } }
데이터 수정(Update)
func updateUser(user: UserEntity, newName: String) { user.name = newName saveContext() }
데이터 삭제(Delete)
func deleteUser(user: UserEntity) { CoreDataManager.shared.context.delete(user) saveContext() }
공통 저장 함수(saveContext)
func saveContext() { let context = CoreDataManager.shared.context if context.hasChanges { do { try context.save() } catch { print("Save error: \(error)") } } }