// μ΄ κ΅¬νμ μ μ ν μ€λ₯ μ²λ¦¬νλ μ½λλ‘ λ체νμΈμ.
// fatalError()λ μ ν리μΌμ΄μ
μ΄ ν¬λμ λ‘κ·Έλ₯Ό μμ±νκ³ μ’
λ£νλλ‘ λ§λλλ€. λ°°ν¬μ© μ ν리μΌμ΄μ
μμλ μ΄ ν¨μλ₯Ό μ¬μ©νμ§ μμμΌ νλ©°, κ°λ° μ€μ μ μ©ν μ μμ΅λλ€.
/*
μ¬κΈ°μ μ€λ₯κ° λ°μνλ μΌλ°μ μΈ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€:
class AppDelegate: UIResponder, UIApplicationDelegate {
...
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "DataModel")
container.loadPersistentStores { description, error in
if let error = error {
fatalError("Unable to load persistent stores: \(error)")
}
}
return container
}()
...
}
μ΄ μ½λλ Core Dataλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκΈ° μν μꡬ 컨ν
μ΄λ(NSPersistentContainer
)λ₯Ό μμ±νλ Swift μ½λμ
λλ€. μꡬ 컨ν
μ΄λλ λ°μ΄ν° λͺ¨λΈμ μ μνκ³ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ΄λ¦¬νλ μ€μν κ΅¬μ± μμ μ€ νλμ
λλ€.
μ¬κΈ°μ μ½λλ₯Ό μ€λͺ νκ² μ΅λλ€:
lazy var persistentContainer: NSPersistentContainer
: persistentContainer
λ μꡬ 컨ν
μ΄λλ₯Ό μ μ₯νκΈ° μν μμ±μ
λλ€. lazy
ν€μλλ‘ μ μΈλμ΄ μ²μ μ κ·Όλ λ μ΄κΈ°νλ©λλ€.
let container = NSPersistentContainer(name: "Diary")
: NSPersistentContainer
μΈμ€ν΄μ€λ₯Ό μμ±ν©λλ€. "Diary"λ λ°μ΄ν° λͺ¨λΈμ μ΄λ¦μ λνλ΄λ©°, ν΄λΉ μ΄λ¦μ ν΄λΉνλ λ°μ΄ν° λͺ¨λΈ νμΌμ μ¬μ©ν©λλ€.
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
: μꡬ μ μ₯μλ₯Ό λ‘λνκ³ , λ‘λ μμ
μ΄ μλ£λλ©΄ ν΄λ‘μ λ΄λΆμ μ½λλ₯Ό μ€νν©λλ€. μ¬κΈ°μ μ μ₯μ λ‘λ μμ
μ΄ μ€ν¨νλ©΄ μ€λ₯κ° μ λ¬λ©λλ€.
if let error = error as NSError?
: λ§μ½ μ€λ₯κ° λ°μνλ€λ©΄, ν΄λΉ μ€λ₯λ₯Ό NSError ννλ‘ λ€μ΄μΊμ€ν
νκ³ μλμ μ€λ₯ μ²λ¦¬ μ½λ λΈλ‘μ μ€νν©λλ€.
fatalError("Unresolved error \(error), \(error.userInfo)")
: μ€λ₯ μ²λ¦¬ μ½λ λΈλ‘μμ μ¬κ°ν μ€λ₯κ° λ°μνλ©΄ μ±μ κ°μ λ‘ μ’
λ£μν΅λλ€. μ€λ₯ λ©μμ§μ ν¨κ» μ’
λ£λλ©°, μ΄λ κ² μ’
λ£λλ©΄ ν¬λμ λ‘κ·Έλ₯Ό μμ±νκ³ μ±μ΄ μ’
λ£λ©λλ€. μ΄ μ½λλ κ°λ° μ€ λλ²κΉ
μ μν΄ μ¬μ©λμ§λ§ μ€μ μ± λ°°ν¬ μμλ μ¬μ©ν΄μλ μ λ©λλ€.
μ΄ μ½λλ Core Dataλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ΄λ¦¬νκΈ° μν κΈ°λ³Έμ μΈ μ€μ μ μννλ©°, μ μ₯μ λ‘λ μμ μ΄ μ€ν¨ν κ²½μ° μ±μ μ’ λ£μν€λ μμΈ μ²λ¦¬κ° ν¬ν¨λμ΄ μμ΅λλ€.