parent
1aa2c5318b
commit
4bb2045fe9
@ -0,0 +1,58 @@
|
||||
//
|
||||
// CoreManger.swift
|
||||
// DouShouQi_App
|
||||
//
|
||||
// Created by étudiant on 14/06/2024.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import CoreData
|
||||
import DouShouQiModel
|
||||
import Combine
|
||||
|
||||
class CoreDataManager {
|
||||
static let shared = CoreDataManager()
|
||||
private init() {}
|
||||
|
||||
lazy var persistentContainer: NSPersistentContainer = {
|
||||
let container = NSPersistentContainer(name: "DouShouQi_App") // Remplacez par le nom de votre modèle
|
||||
container.loadPersistentStores { (storeDescription, error) in
|
||||
if let error = error as NSError? {
|
||||
fatalError("Unresolved error \(error), \(error.userInfo)")
|
||||
}
|
||||
}
|
||||
return container
|
||||
}()
|
||||
|
||||
var context: NSManagedObjectContext {
|
||||
return persistentContainer.viewContext
|
||||
}
|
||||
|
||||
func saveContext() {
|
||||
if context.hasChanges {
|
||||
do {
|
||||
try context.save()
|
||||
} catch {
|
||||
let nserror = error as NSError
|
||||
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func savePlayer(playerVM: PlayerVM) {
|
||||
let player = CDPlayer(context: context)
|
||||
player.name = playerVM.player.name
|
||||
player.photo = playerVM.player.photo
|
||||
saveContext()
|
||||
}
|
||||
|
||||
func fetchPlayers() -> [CDPlayer] {
|
||||
let fetchRequest: NSFetchRequest<CDPlayer> = CDPlayer.fetchRequest()
|
||||
do {
|
||||
return try context.fetch(fetchRequest)
|
||||
} catch {
|
||||
print("Failed to fetch players: \(error)")
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
//
|
||||
// CDPlayerExtension.swift
|
||||
// DouShouQi_App
|
||||
//
|
||||
// Created by étudiant on 14/06/2024.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import CoreData
|
||||
|
||||
extension CDPlayer {
|
||||
func toModel() -> Player {
|
||||
return Player(name: self.name ?? "", photo: self.photo ?? "")
|
||||
}
|
||||
|
||||
convenience init(name: String, photo: String, context: NSManagedObjectContext){
|
||||
self.init(context: context)
|
||||
self.name = name
|
||||
self.photo = photo
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="21754" systemVersion="22G91" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
|
||||
<entity name="CDPlayer" representedClassName="CDPlayer" syncable="YES" codeGenerationType="class">
|
||||
<attribute name="name" optional="YES" attributeType="String"/>
|
||||
<attribute name="photo" optional="YES" attributeType="String"/>
|
||||
</entity>
|
||||
</model>
|
Loading…
Reference in new issue