Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
74 changes: 74 additions & 0 deletions Model/CoreDataManager.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
//
// CoreDataManager.swift
// MyCreditManager_dosh.kor
//
// Created by 신동오 on 2022/12/06.
//

import Foundation
import CoreData

final class CoreDataManager {

// singleton
static let shared: CoreDataManager = CoreDataManager()

let modelName: String = "GradeCard"

// Persistent Container load
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "Model")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()

// Managed Object Context
var context: NSManagedObjectContext {
return persistentContainer.viewContext
}

func saveToContext() {
if context.hasChanges {
do {
try context.save()
} catch {
print(error.localizedDescription)
}
}
}

func readGradeCards() -> [GradeCard] {
var gradeCardArray:[GradeCard] = []
let request = NSFetchRequest<NSManagedObject>(entityName: modelName)

do {
if let fetchedGradeCard = try context.fetch(request) as? [GradeCard] {
gradeCardArray = fetchedGradeCard
}
} catch {
print("read() 실패", error.localizedDescription)
}

return gradeCardArray
}

func createGradeCard(name: String, subject: String?, grade: String?) {
if let entity = NSEntityDescription.entity(forEntityName: modelName, in: context){
if let gradeCard = NSManagedObject(entity: entity, insertInto: context) as? GradeCard {
gradeCard.name = name
gradeCard.subject = subject ?? "empty"
gradeCard.grade = grade ?? "empty"
self.saveToContext()
}
}
}

func deleteGradeCard(data: GradeCard) {
context.delete(data)
self.saveToContext()
}
}
15 changes: 15 additions & 0 deletions Model/GradeCard+CoreDataClass.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// GradeCard+CoreDataClass.swift
// MyCreditManager_dosh.kor
//
// Created by 신동오 on 2022/12/06.
//
//

import Foundation
import CoreData

@objc(GradeCard)
public class GradeCard: NSManagedObject {

}
27 changes: 27 additions & 0 deletions Model/GradeCard+CoreDataProperties.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//
// GradeCard+CoreDataProperties.swift
// MyCreditManager_dosh.kor
//
// Created by 신동오 on 2022/12/06.
//
//

import Foundation
import CoreData


extension GradeCard {

@nonobjc public class func fetchRequest() -> NSFetchRequest<GradeCard> {
return NSFetchRequest<GradeCard>(entityName: "GradeCard")
}

@NSManaged public var grade: String?
@NSManaged public var name: String?
@NSManaged public var subject: String?

}

extension GradeCard : Identifiable {

}
10 changes: 10 additions & 0 deletions Model/LocalItem.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
//
// LocalItem.swift
// MyCreditManager_dosh.kor
//
// Created by 신동오 on 2022/12/08.
//

import Foundation

let permittedString: [String] = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", " "]
Loading