Ich verwende derzeit Kerndaten in meiner Anwendung. Ich habe die folgenden Entitäten: Benachrichtigung (zu-1), Personen (zu-viele). Die Einheiten sind wie folgt:Der Vorgang konnte nicht abgeschlossen werden. (Kakao Fehler 133021.) + swift 2
schema for Notification entity
Die Menschen Einheit hat eine eindeutige Einschränkung, die das Feld-ID ist. Grundsätzlich werde ich Benachrichtigungen (die in der Notification-Entität gespeichert werden) von Personen erhalten (die in People-Entität gespeichert werden). Ich möchte die Entität Personen aktualisieren, wenn eine Person mit einer bestimmten ID mehr als eine Benachrichtigung sendet und keine neue Person erstellt (die doppelt vorhanden ist).
Wenn ich das tue, oben ich die folgende Fehlermeldung erhalten:
Der Vorgang konnte nicht abgeschlossen werden. (Kakao Fehler 133021.)
Kann mir bitte jemand helfen, dieses Problem zu lösen. Unten finden Sie meinen Code und ein Beispiel für die Daten, die ich speichern möchte.
let entityNotification = NSEntityDescription.entityForName("Notification", inManagedObjectContext: self.managedContext)
let newNotification = Notification(entity: entityNotification!, insertIntoManagedObjectContext: self.managedContext)
newNotification.message = data["message"] as? String
if let actor = data["actor"] as? [String : AnyObject]
{
let newPeople = NSEntityDescription.insertNewObjectForEntityForName("People", inManagedObjectContext: self.managedContext) as! People
newPeople.id = actor["id"] as? Int
newPeople.name = actor["name"] as? String
newNotification.actor = newPeople
}
if let designator = data["designator"] as? [String : AnyObject]
{
let newPeople = NSEntityDescription.insertNewObjectForEntityForName("People", inManagedObjectContext: self.managedContext) as! People
newPeople.id = designator["id"] as? Int
newPeople.name = designator["name"] as? String
newNotification.designator = newPeople
}
do
{
try newNotification.managedObjectContext?.save()
}
catch let error as NSError
{
print(error.localizedDescription)
}
Datenmodell:
let notif = ["message" : "testing",
"actor" : ["id": 1, "name": "jim"],
"designator" : ["id": 2, "name": "dave"]]
let notif1 = ["message" : "testing 1",
"actor" : ["id": 1, "name": "jim21"],
"designator" : ["id": 2, "name": "dave"]]
Nirgendwo in Ihrem Code zu tun versuchen Sie einen vorhandenen g 'People' Instanz – Paulw11
Coredata zu laden Tutorial in Swift: https://iosdevcenters.blogspot.com/2016/06/crud-operations-susing-code-data-swift.html –