Если объект не является ошибкой, но полностью реализованный объект (его свойства были заполнены), то ничего не произойдет, если вы получите доступ к свойству этого объекта за 10 минут.
stalenessInterval
влияет только на объекты, которые являются дефектами. Если у вас есть такой объект и вы инициируете выполнение ошибки, например, путем доступа к свойству, то Core Data может либо получить значения свойств из своего внутреннего кеша, либо из постоянного хранилища. Если время в stalenessInterval
с момента последнего извлечения из хранилища прошло, значения свойств будут извлечены из хранилища, в противном случае - из кеша, который намного быстрее.
Да, может быть ситуация, когда данные уже кэшированы, а объект является ошибкой. Вы можете сделать это сами, обрезая граф объектов, чтобы разбить сильные ссылочные циклы отношений.
Когда у вас есть отношения между управляемыми объектами, каждый объект поддерживает сильную ссылку на объект или объекты, с которыми он связан. Это может привести к сильным опорным циклам. Чтобы гарантировать, что ссылочные циклы будут нарушены, когда вы закончите с объектом, вы можете использовать метод контекста управляемого объекта refreshObject: mergeChanges: превратить его в ошибку.
Теперь это смущает - я думал, что ошибка - призрак? – dontWatchMyProfile
Они есть. Тем не менее, «стрельба по ошибке» означает заполнение атрибутов объектов. Если неисправности являются «призраками», то «срабатывание сбоя» и «нарушение» означают «материализоваться» или «делать конкретные». Терминология развивалась в течение нескольких десятилетий и довольно запутанна. Многие авторы получают это назад, что только ухудшает его. – TechZen
Я отредактировал ответ, чтобы уточнить, что ошибки и призраки - одно и то же, поэтому реакция dontWatchMyProfile может показаться странной. – Felixyz