2013-12-08 3 views
0

Недавно я разработал приложение с базовыми данными. Учитывая параллелизм с Core Data, я использую шаблон родительского/дочернего MOC, который является базовым для this great article.Нужно ли вручную очищать объект-контекст объекта?

Тем не менее, есть еще вопрос: нужно ли вручную очищать MOC после сохранения? то есть childContext = nil; Существует меньше документации о шаблоне MOC родителя/ребенка.

Может ли кто-нибудь дать мне руку? Большое спасибо.

+0

Что вы подразумеваете под «чистым»? –

+0

@AbhiBeckert Прошу прощения за мое нечеткое описание. Пожалуйста, прочтите мое обновление. – ShengHuaWu

ответ

1

Да, детальный контекст должен быть удален, как только вы закончите работать с ним.

Если у вас есть сильный/удержание @property, указывающий на детский контекст, вы должны установить его на нуль, как только он вам больше не понадобится.

Если у вас нет сильных/сохраняемых свойств, ARC будет вставлять строку кода, чтобы освободить дочерний контекст сразу после последней строки кода, использующей childContext.

Если ARC отключен, он должен быть автореализован, когда приложение будет следующим бездействием.

Так что в принципе, его не нужно вручную удалять. Но есть ситуации, когда вам приходится вручную это делать. Вы не найдете документацию по конкретным управляемым объектам об этом, это стандартное управление памятью в объективе-c и будет документировано только в том случае, если оно будет вести себя по-другому.

+0

Значит, метод «setParentContext:» не создает сильный (сохраняющий) указатель из родительского контекста в детский контекст? – ShengHuaWu

+0

Он создаст сильный указатель (или слабый, который, как представляется, не документирован) от ребенка к родительскому, а не от родителя к ребенку. Если не указано иное, какой бы объект не был установлен, это тот, который будет «владеть» другим. Таким образом, в этом случае, несмотря на имя, ребенок «владеет» родителем с точки зрения управления памятью. Теоретически родитель не должен даже знать, что ребенок существует и не должен касаться его каким-либо образом. –

+0

Спасибо за обмен! – ShengHuaWu

Смежные вопросы