Понимание создания и обновления сущностей CoreData в «блокноте» - PullRequest
0 голосов
/ 31 января 2012

Для многих это может показаться простым вопросом, я пытаюсь понять, как CoreData управляет объектами, и я столкнулся с этим в документации:

Контекст управляемого объекта действует как блокнотная .Вы можете создавать и регистрировать управляемые объекты с ним, вносить изменения в объекты, а также отменять и возвращать изменения по своему желанию.Если вы вносите изменения в управляемые объекты, связанные с данным контекстом, эти изменения остаются локальными для этого контекста до тех пор, пока вы не передадите изменения, отправив контексту сообщение save:.

Мне было интересно, что это за блокнот,Я только что запустил профилировщик CoreData и увидел, что при создании управляемого объекта и последующем обновлении его свойств не происходит обращения к хранилищу Core Data Saves.Поэтому я думаю, что все хранится в памяти, если бы вы только могли это подтвердить.Тогда, второй вопрос, если это подтверждается, существуют ли какие-либо лучшие методы «памяти» CoreData при создании и, в частности, обновлении управляемых объектов перед сохранением?

спасибо

1 Ответ

0 голосов
/ 31 января 2012
  1. Подтверждено.
  2. Да, вы, конечно, не должны иметь слишком много транзакций в контексте без сохранения. Например, если вы создаете 10.000 объектов в цикле, то, в зависимости от размера этих объектов, может быть целесообразно время от времени сохранять. Обратите внимание, что применяется и обратное: если вы экономите слишком часто (например, каждый раз в цикле 10.000), это также очень неэффективно.
...