Swift 3 мигрировали мой код и изменен:операции удаления данных управляемый объект с Swift 3
context.deleteObject(myManagedObject)
в
context.delete(myManagedObject)
это компилирует нормально (XCode 8b3), но во время выполнения жалуясь, что контекст не имеет функции/селектор удаления (managedObject)
Здесь ошибка во время выполнения:
[NSManagedObjectContext удалить]: непризнанные селектор направлен например
Мой код очень простой:
func delete()
{
let appDel: AppDelegate = UIApplication.shared().delegate as! AppDelegate
if let context: NSManagedObjectContext = appDel.managedObjectContext
{
context.delete(exerciseData)
appDel.saveContext()
}
}
Почему он больше не работает?
Благодаря
Грег
Хороший улов .... exerciseData является необязательным типом Упражнение! Я прочитал заметки о выпуске, но пропустил это. Благодарю. Чтобы исправить я развернул exerciseData с: if let exerciseToBeDeleted: Exercise = exerciseData {// delete code} –
Одно уточнение: У меня была ситуация, когда у меня была необязательная ссылка на экземпляр 'NSManagedObjectContext' и экземпляр' NSManagedObject'. Мне нужно было использовать 'if let' или'! 'В *' NSManagedObject' *, а не в контексте ... – andrewcbancroft