Я пытаюсь использовать NSBatchUpdateRequest для обновления отношений «один ко многим».NSBatchUpdateRequest для отношений «один ко многим»
Моя сущность, Презентация, имеет несколько слайдов, которые являются еще одним объектом, и они имеют обратную связь.
Когда я пытаюсь обновить слайды, я получаю эту ошибку:
*** Нагрузочного приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: «Invalid отношения ((), имя слайды, isOptional 1, isTransient 0, объектные презентации, слайды, renamingIdentifier проверка предикаты ( ), предупреждение ( ), versionHashModifier (нуль) USERINFO { } назначение объект Slide, inverseRelationship презентация, minCount 0, MAXCOUNT 0, isOrdered 0, deleteRule 1) передано propertiesToUpdate: '
Я попытался найти эту ошибку, но не смог найти результатов.
Мой код:
let entity = NSEntityDescription.entityForName("Presentation", inManagedObjectContext: managedObjectContext)
let batchRequest = NSBatchUpdateRequest(entity: entity!)
batchRequest.resultType = .UpdatedObjectIDsResultType
batchRequest.propertiesToUpdate = ["date_updated": formattedDateUpdated, "slides": presentationSlides]
do {
let batchUpdateResult = try managedObjectContext.executeRequest(batchRequest) as! NSBatchUpdateResult
let objectIds = batchUpdateResult.result as! [NSManagedObjectID]
for objectId in objectIds {
let managedObject = managedObjectContext.objectWithID(objectId)
managedObjectContext.refreshObject(managedObject, mergeChanges: false)
}
} catch {
let updateError = error as NSError
print(updateError)
}
date_updated обновляется просто отлично, так что я не думаю, что это правильный способ обновления отношений.
Если кому-то нужно больше кода, пожалуйста, дайте мне знать. Спасибо за любую помощь.
Почему вы используете 'NSBatchUpdateRequest'? Это будет обновлять * каждый * Презентация с новыми 'date_updated' и' слайдами'. Это то, что вы хотите? – pbasdf
@pbasdf Нет. Я мог бы использовать выборку, обновление и сохранение, которая будет только обновлять представление, которое я хочу, правильно? Первый раз, используя Core Data, я не уверен. – sallyp
Да - обычный NSFetchRequest (с предикатом для получения только желаемого представления), а затем обновить атрибут date_updated, а отношение слайдов, а затем сохранить, должно сделать трюк. – pbasdf