Если у меня есть сущность Person
и сущность Book
, в которой Person
может иметь много Book
с.
final class Person: NSManagedObject {
@NSManaged public fileprivate(set) var name: String
@NSManaged public fileprivate(set) var books: Set<Book>
}
final class Book: NSManagedObject {
@NSManaged public fileprivate(set) var name: String
@NSManaged public fileprivate(set) var person: Person
static func add(bookNamed name: String, to person: Person) {
guard let context = person.managedObjectContext else { fatalError("Can not obtain managed object Context") }
let book = NSEntityDescription.insertNewObject(forEntityName: "Book", into: context) as Book
book.name = name
book.person = person
}
}
В некоторых UIViewController
я добавлю несколькоBook
с Person
:
let alex = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: context) as Person
Alex.name = "Alex"
Book.add("first book", to: alex)
Book.add("second book", to: alex)
Book.add("third book", to: alex)
, а затем пару Book
с другим Person
let john = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: context) as Person
john.name = "John"
Book.add("another first book", to: john)
Book.add("another second book", to: john)
Затем я перезагружаю свое приложение и используюзапросить запрос всех людей (например, alex
и john
) в табличном представлении.Затем я нажимаю alex
, что приводит меня к другому контроллеру представления, у которого есть экземпляр Person
, который я назначаю как alex
, чтобы я мог просматривать книги, связанные с этим экземпляром.
Вопрос Все ли Book
загружены в память, даже если у меня есть 1000 с?Или мне нужно выполнить другую выборку, чтобы получить Book
s, принадлежащие alex
, если я хочу отобразить их все?Я просто хочу немного прояснить, что происходит с отношениями между двумя сущностями, так как это меня немного смутило в последнее время.
Спасибо за любую помощь.