티스토리 뷰

1. C(Create Data)

let insert_learningLogEntity = LearningLogEntity(context: self.moc)
insert_learningLogEntity.alphabet = wordEntityExtend.alphabet ?? ""
insert_learningLogEntity.meaning = wordEntityExtend.meaning ?? ""
insert_learningLogEntity.registrationDate = Date.now

if self.moc.hasChanges {
    do {
        try self.moc.save()
    } catch {
        if let nsError = error as NSError? {
            fatalError("Unresolved Error: \(nsError), \(nsError.userInfo)")
        }
    }
}

 

2. R(Read Data)

let nsFetchRequest_LearningLogEntity = NSFetchRequest<NSFetchRequestResult>(
    entityName: EntityName.LearningLogEntity.rawValue
)

nsFetchRequest_LearningLogEntity.predicate = NSPredicate(
    format: "alphabet == %@ && meaning == %@",
    wordEntityExtend.alphabet ?? "",
    wordEntityExtend.meaning ?? ""
)

do {
    let resultFetch = try self.moc.fetch(nsFetchRequest_LearningLogEntity)
    if resultFetch.count == 0 {
        let insert_LearningLogEntity = LearningLogEntity(context: self.moc)
        insert_LearningLogEntity.alphabet = wordEntityExtend.alphabet ?? ""
        insert_LearningLogEntity.meaning = wordEntityExtend.meaning ?? ""
        insert_LearningLogEntity.registrationDate = Date.now
    }
} catch {
    if let nsError = error as NSError? {
        fatalError("Unresolved Error: \(nsError), \(nsError.userInfo)")
    }
}

if self.moc.hasChanges {
    do {
        try self.moc.save()
    } catch {
        if let nsError = error as NSError? {
            fatalError("Unresolved Error: \(nsError), \(nsError.userInfo)")
        }
    }
}

 

3. U(Update Data)

 

4. D(Delete Data)

let nsFetchRequest_LearningLogEntity = NSFetchRequest<NSFetchRequestResult>(
    entityName: EntityName.LearningLogEntity.rawValue
)

nsFetchRequest_LearningLogEntity.predicate = NSPredicate(
    format: "alphabet == %@ && meaning == %@",
    wordEntityExtend.alphabet ?? "",
    wordEntityExtend.meaning ?? ""
)

do {
    let fetchedResult = try self.moc.fetch(nsFetchRequest_LearningLogEntity)
    if let dataDelete = fetchedResult.first {
        self.moc.delete(dataDelete as! NSManagedObject)
    }
} catch {
    if let nsError = error as NSError? {
        fatalError("Unresolved Error: \(nsError), \(nsError.userInfo)")
    }
}

if self.moc.hasChanges {
    do {
        try self.moc.save()
    } catch {
        if let nsError = error as NSError? {
            fatalError("Unresolved Error: \(nsError), \(nsError.userInfo)")
        }
    }
}

 

728x90
반응형