Hallo zusammen,
ich habe eine Tabelle die eigentlich auch sehr gut funktioniert hat. Allerdings habe ich Gestern einmal alle Einträge gelöscht und habe jetzt eine leere Tabelle.
Wenn ich jetzt allerdings einen neuen Eintrag erstellen will kommt der Error: "Thread 1: Fatal error: Index out of range" ich habe schon versucht den Index mit print befehlen auszulesen und anzupassen aber leider ohne Erfolg.
Das Problem tritt bei "getEinsatzItem(index: Int)..." auf
Gruß Yooh
Alles anzeigen
ich habe eine Tabelle die eigentlich auch sehr gut funktioniert hat. Allerdings habe ich Gestern einmal alle Einträge gelöscht und habe jetzt eine leere Tabelle.
Wenn ich jetzt allerdings einen neuen Eintrag erstellen will kommt der Error: "Thread 1: Fatal error: Index out of range" ich habe schon versucht den Index mit print befehlen auszulesen und anzupassen aber leider ohne Erfolg.
Das Problem tritt bei "getEinsatzItem(index: Int)..." auf
Gruß Yooh
Shell-Script: CoreDataManager.swift
- import UIKit
- import CoreData
- class CoreDataManager {
- static let shared = CoreDataManager()
- var einsaetze = [Einsatz]()
- // Context als Variable
- let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
- private init() {
- loadItems()
- }
- func createObj(einsatznummer: String, datum: String, uhrzeit: String, stichwort: String, palst: String) {
- let einsatz = NSEntityDescription.insertNewObject(forEntityName: "Einsatz", into: context) as! Einsatz
- //Entity.Attribute = variable
- einsatz.einsatznummer = einsatznummer
- einsatz.datum = datum
- einsatz.stichwort = stichwort
- einsatz.palst = palst
- einsatz.uhrzeit = uhrzeit
- saveContext()
- }
- // Count Array
- func getNumberOfItems () -> Int {
- return einsaetze.count
- }
- func getEinsatzItem(index: Int) -> Einsatz {
- print(index)
- return einsaetze[index]
- }
- // Löschen eines TodoItems aus der Liste MUSS BEIM AUFRUFEN INVERTIERT WERDEN
- func removeEinsatzItemAtIndex(index: Int) {
- print (index, "der soll weg")
- // Löschen aus dem Context
- context.delete(getEinsatzItem(index: index))
- // Löschen aus dem Array todoItems
- einsaetze.remove(at: index)
- // Änderung muss gesichert werden
- saveContext()
- }
- // Test
- // Objekte laden
- func loadItems () {
- let request = NSFetchRequest<Einsatz>(entityName: "Einsatz")
- print (request, "das")
- do {
- einsaetze = try context.fetch(request)
- print("geladen")
- } catch {
- print(error.localizedDescription)
- }
- }
- // Context speichern
- func saveContext () {
- do {
- try context.save()
- } catch {
- print(error.localizedDescription)
- }
- }
- }