Ленивая загрузка и CoreData
Суть
Lazy loading — паттерн, при котором данные подгружаются не заранее, а в момент первого обращения. В Core Data он реализован механизмом faulting: результат fetch — это объекты-заглушки (fault), у которых известен только objectID; атрибуты читаются из хранилища при первом доступе к свойству. То же относится к связям: author.books — это fault на Set, пока вы его не перебрали. Благодаря этому можно сделать fetch на 10 000 записей и держать в памяти почти ничего.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep