Get your own website
Demo.swift
ContentView.swift
App.swift
 
import SwiftUI
import CoreData

class NoteEntity: NSManagedObject {
  @NSManaged public var id: UUID?
  @NSManaged public var title: String?
  @NSManaged public var body: String?
}

extension NoteEntity: Identifiable {}

struct PersistenceController {
  static let shared = PersistenceController()
  let container: NSPersistentContainer
  init() {
    container = NSPersistentContainer(name: "MyModel")
    container.loadPersistentStores { _, error in
      if let error = error { fatalError("Unresolved error: \(error)") }
    }
  }
}

struct NotesCoreDataView: View {
  @Environment(\.managedObjectContext) private var context
  @FetchRequest(sortDescriptors: [NSSortDescriptor(keyPath: <br>oteEntity.title, ascending: true)])
  private var notes: FetchedResults<NoteEntity>

  var body: some View {
    List(notes) { n in
      VStack(alignment: .leading) {
        Text(n.title ?? "Untitled").font(.headline)
        Text(n.body ?? "").font(.subheadline)
      }
    }
    .toolbar { Button("Add") { add() } }
  }

  private func add() {
    let n = NoteEntity(context: context)
    n.id = UUID(); n.title = "New Note"; n.body = ""
    try? context.save()
  }
}

                    
import SwiftUI

struct ContentView: View {
  var body: some View {
    NotesCoreDataView()
  }
}

                    
import SwiftUI
import CoreData

@main
struct MyApp: App {
  let persistence = PersistenceController.shared
  var body: some Scene {
    WindowGroup {
      ContentView()
        .environment(\.managedObjectContext, persistence.container.viewContext)
    }
  }
}