• Feed
  • Explore
  • Ranking
/
/
    📱 iOS

    [iOS] Core Data CRUD (Create, Read, Update, Delete) 구현

    iosSwift
    지
    지성
    2025.02.19
    ·
    2 min read

    Core Data에서 데이터를 저장(Create), 불러오기(Read), 수정(Update), 삭제(Delete)하는 기본적인 CRUD 기능을 구현하는 방법 정리

    1. 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
          }
      }
    2. 데이터 생성(Create)

      func createUser(name: String, email: String) {
          let user = UserEntity(context: CoreDataManager.shared.context)
          user.name = name
          user.email = email
          
          saveContext()
      }
    3. 데이터 불러오기(Read)

      func fetchUsers() -> [UserEntity] {
          let request: NSFetchRequest<UserEntity> = UserEntity.fetchRequest()
          do {
              return try CoreDataManager.shared.context.fetch(request)
          } catch {
              print("Fetch error: \(error)")
              return []
          }
      }
    4. 데이터 수정(Update)

      func updateUser(user: UserEntity, newName: String) {
          user.name = newName
          saveContext()
      }
    5. 데이터 삭제(Delete)

      func deleteUser(user: UserEntity) {
          CoreDataManager.shared.context.delete(user)
          saveContext()
      }
    6. 공통 저장 함수(saveContext)

      func saveContext() {
          let context = CoreDataManager.shared.context
          if context.hasChanges {
              do {
                  try context.save()
              } catch {
                  print("Save error: \(error)")
              }
          }
      }






    - 컬렉션 아티클