я работаю с быстрым 4 для osx.
let appdelegate = NSApplication.shared().delegate as! AppDelegate
let context = appdelegate.persistentContainer.viewContext
var people = [Person]()
let request = NSFetchRequest<Person>(entityName: "Person")
do {
people = try context.fetch(request)
for person in people {
print("Person: ", person.name!)
for book in person.books {
print("Title: ", book.title!)
}
}
}
catch { print(error) }
- у меня есть объекты: Человек и Книги
- Я могу создать человека
- я могу создать книгу, которая будет назначена человеку
- и я знаю, как я могу получить информацию о том, какие книги назначены
какому человеку (код выше)
теперь я хотел бы удалить человека со всеми назначенными книгами. Могу ли я сделать это за один шаг или мне нужно запросить идентификатор объекта каждой книги из книг сущностей и удалить его? я пробовал что-то вроде этого:
let appdelegate = NSApplication.shared().delegate as! AppDelegate
let context = appdelegate.persistentContainer.viewContext
var people = [Person]()
let request = NSFetchRequest<Person>(entityName: "Person")
people = try context.fetch(request)
for person in people {
context.delete(person as! NSManagedObject)
for book in person.books {
// request object ID of this book form books and delete it
}
}
} catch { }