Ich legte ein Array zum Speichern der Daten aus Core Data.Wie kann ich die richtige Kernnummer drucken?
var users:[Users] = []
wenn ich einen meiner Daten aus dem Tableview löschen möchten, habe ich diese Funktion, wie folgt aus:
func deleteData(username:IndexPath){
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
context.delete(users[username.row])
print("test1")
print(users[username.row])
print(users)
print(users.count)
do {
try context.save()
print("test2")
print(users[username.row])
print(users)
print(users.count)
} catch {
print("Could'n save data")
}
}
ich diesen Vorgang beobachtet, und ich fand einige Frage hier:
Unterhalb der context.save(), trat ich in die print (Benutzer) und die Konsole kommt heraus, was die Nutzer Daten ist:
test2
<Users: 0x600000286770> (entity: Users; id: 0xd000000000e40000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p57> ; data: <fault>)
[<Users: 0x600000281ea0> (entity: Users; id: 0xd000000000c40000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p49> ; data: {
username = test1;
}), <Users: 0x6000002823f0> (entity: Users; id: 0xd000000000c80000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p50> ; data: {
username = test2;
}), <Users: 0x6000002823a0> (entity: Users; id: 0xd000000000cc0000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p51> ; data: {
username = test3;
}), <Users: 0x600000282350> (entity: Users; id: 0xd000000000d00000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p52> ; data: {
username = test4;
}), <Users: 0x600000282300> (entity: Users; id: 0xd000000000d40000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p53> ; data: {
username = test5;
}), <Users: 0x600000286770> (entity: Users; id: 0xd000000000e40000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p57> ; data: <fault>)]
6
aber ich habe nur 5 Daten, nicht 6. Was ist los mit diesem Problem?
Wenn Sie besorgt sind, dass das letzte Element im Array als Fehler angezeigt wird, ist es nichts, worüber man sich Sorgen machen muss. Siehe [diese Antwort] (https://stackoverflow.com/a/7304350/3985749). Fehler sind nur CoreData-Speicher, die richtigen Daten werden stillgelegt, sobald Sie auf eine der Eigenschaften des sechsten Elements zugreifen. – pbasdf