var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "CoreDataModel")
container.loadPersistentStores(completionHandler: {(StoreDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
func saveContext() {
let context = persistentContainer.viewContext
if context.hasChanges{
do {
try context.save()
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
}
class dataModel: ObservableObject{
@Published var data: [NSManagedObject] = [] //Contiene i dati, tutti i favorites
@Published var txt = ""
let context = persistentContainer.viewContext
init() {
readData()
}
func readData(){
let request = NSFetchRequestNSFetchRequestResult(entityName: "Content")
do {
let results = try context.fetch(request)
self.data = results as! [NSManagedObject]
} catch {
print(error.localizedDescription)
}
}
func writeData(){
let entity = NSEntityDescription.insertNewObject(forEntityName: "Content", into: context)
entity.setValue(txt, forKey: "value")
do {
try context.save()
self.data.append(entity)
//txt = ""
} catch {
print(error.localizedDescription)
}
}
func deleteData(indexSet: IndexSet){
for index in indexSet{
do {
let obj = data[index]
context.delete(obj)
try context.save()
let index = data.firstIndex(of: obj)
data.remove(at: index!)
} catch {
print(error.localizedDescription)
}
}
}
func updateData(){
}
func getValue(obj: NSManagedObject) - String{
return obj.value(forKey: "value") as! String
}
}
class dataModel1: ObservableObject{
@Published var data: [NSManagedObject] = [] //Contiene i dati, tutti i favorites
@Published var dataAttuale = Date()
let context = persistentContainer.viewContext
init() {
readData()
}
func readData(){
let request = NSFetchRequestNSFetchRequestResult(entityName: "Content2")
do {
let results = try context.fetch(request)
self.data = results as! [NSManagedObject]
} catch {
print(error.localizedDescription)
}
}
func writeData(){
let entity = NSEntityDescription.insertNewObject(forEntityName: "Content2", into: context)
entity.setValue(dataAttuale, forKey: "date")
do {
try context.save()
self.data.append(entity)
//txt = ""
} catch {
print(error.localizedDescription)
}
}
func deleteData(indexSet: IndexSet){
for index in indexSet{
do {
let obj = data[index]
context.delete(obj)
try context.save()
let index = data.firstIndex(of: obj)
data.remove(at: index!)
} catch {
print(error.localizedDescription)
}
}
}
func updateData(){
}
func getValue(obj: NSManagedObject) - Date{
return obj.value(forKey: "date") as! Date
}
}
The getValue function returns two different types in the two classes, thats why I need two FoeEach loops