Niestety nowa semantyka Core Data doprowadza mnie do szału. Moje poprzednie pytanie zawierało czysty kod, który nie działał z powodu nieprawidłowego automatycznego generowania plików nagłówkowych. Teraz kontynuuję pracę z usuwaniem obiektów. Mój kod wydaje się być bardzo proste: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)
}
zrobiłem „twarde” debug z print(object)
zamiast context.delete(object)
i pokazał mi odpowiedniego obiektu. Muszę więc po prostu go usunąć.
P.S. nie ma numeru deleteObject
. Teraz NSManagedContext ma tylko public func delete(_ sender: AnyObject?)
ile rzeczy się zmieniło w Swift 3 (przepraszam jeśli mają), FETCH zwróci tablicę obiektów, nawet jeśli jest tylko jeden, który pasuje do orzec. Musisz przejść przez wyniki (najbezpieczniejsze) lub użyć 'object [0]', aby uzyskać dostęp do pierwszego obiektu w tablicy. – pbasdf