К сожалению, новая семантика Core Data делает меня сумасшедшим. У моего предыдущего вопроса был чистый код, который не работал из-за неправильной генерации файлов заголовков. Теперь я продолжаю работу с удалением объектов. Мой код выглядит очень просто:Swift 3 Основные данные Удалить объект
func deleteProfile(withID: Int) {
let fetchRequest: NSFetchRequest<Profile> = Profile.fetchRequest()
fetchRequest.predicate = Predicate.init(format: "profileID==\(withID)")
let object = try! context.fetch(fetchRequest)
context.delete(object)
}
Я сделал «жесткий» отладки с print(object)
вместо context.delete(object)
, и он показал мне правильный объект. Мне нужно просто удалить его.
P.S. нет deleteObject
. Теперь NSManagedContext имеет только public func delete(_ sender: AnyObject?)
Если ситуация не изменится в Swift 3 (извинения, если у них есть), то запрос будет возвращать массив объектов, даже если есть только один, который соответствует вашим сказуемое. Для доступа к первому объекту в массиве вам нужно либо пройти через результаты (безопаснее), либо использовать 'object [0]'. – pbasdf