В настоящее время я использую основные данные в своем приложении. У меня есть следующие объекты: Уведомление (to-1), Люди (для многих). Субъектами являются:Операция не может быть завершена. (Ошибка какао 133021.) + swift 2
schema for Notification entity
The People предприятие имеет уникальное ограничение, которое поле идентификатор. В основном я собираюсь получать уведомления (которые будут сохранены в сущности уведомления) от лиц (которые будут сохранены в сущности People). Я хочу обновить объект People, если человек с определенным идентификатором отправляет несколько уведомлений, а не создает новый (который будет дублировать).
Когда я делаю выше я получаю следующее сообщение об ошибке:
Операция не может быть завершена. (Ошибка какао 133021.)
Может кто-то, пожалуйста, помогите мне решить эту проблему. Ниже приведен мой код и пример данных, которые я пытаюсь сохранить.
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)
}
модель данных:
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"]]
Нигде в вашем коде вы не пытаетесь загрузить существующий экземпляр g 'People' – Paulw11
CoreData в быстром: https://iosdevcenters.blogspot.com/2016/06/crud-operations-using-code-data-swift.html –