Sfortunatamente la nuova semantica Core Data mi fa impazzire. La mia domanda precedente aveva un codice pulito che non funzionava a causa della generazione automatica errata dei file di intestazione. Ora continuo il mio lavoro con l'eliminazione degli oggetti. Il mio codice sembra essere molto semplice:Swift 3 Core Data Delete Object
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)
}
ho fatto un debug "duro" con print(object)
invece di context.delete(object)
e mi ha mostrato l'oggetto giusto. Quindi ho solo bisogno di cancellarlo.
P.S. non c'è deleteObject
. Ora NSManagedContext ha solo public func delete(_ sender: AnyObject?)
A meno che le cose sono cambiate a Swift 3 (scuse se hanno), l'operazione di recupero restituisce un array di oggetti, anche se c'è solo uno che corrisponde al tuo predicato. Per accedere al primo oggetto dell'array è necessario scorrere i risultati (più sicuro) o usare 'oggetto [0]'. – pbasdf