- ํ๋ก์ ํธ์์ ์ฌ์ฉํ CoreData
import Foundation
import CoreData
class CoreDataManager {
static var shared: CoreDataManager = .init()
let container = {
let container = NSPersistentContainer(name: "CoreData ํ์ผ์ด๋ฆ")
container.loadPersistentStores { _, error in
if let error = error {
fatalError("Failed to load persistent stores: \(error)")
}
}
return container
}()
// ์ธ๋ถ์์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ง์ ์์ฑํ์ง ๋ชปํ๋๋ก ํด์ค
private init() {}
// create
func createVoca(word: String, meaning: String) {
// ๋ฐ์ดํฐ ์ฝ๊ณ ์ฐ๊ธฐ ์ํ Managed Object Context๋ฅผ ์ป์
let context = container.viewContext
// entity์ ๊ฐ์ฒด ๋ง๋ค๊ธฐ
let object = NSEntityDescription.insertNewObject(forEntityName: "entity ์ด๋ฆ", into: context)
object.setValue(word, forKey: "attribute ์ด๋ฆ")
object.setValue(false, forKey: "attribute ์ด๋ฆ")
}
// read
func readVoca() -> [NSManagedObject] {
// ๋ฐ์ดํฐ ์ฝ๊ณ ์ฐ๊ธฐ ์ํ Managed Object Context๋ฅผ ์ป์
let context = container.viewContext
let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "entity ์ด๋ฆ")
let result = try? context.fetch(fetchRequest)
return result ?? []
}
// delete
func deleteVoca(_ voca: NSManagedObject) {
let context = container.viewContext
context.delete(voca)
do {
try context.save()
} catch {
fatalError("Failed to save context after deletion: \(error)")
}
}
}