В чем причина использования хранилища данных в памяти? - PullRequest
2 голосов
/ 10 декабря 2011

Я просматриваю книгу Apress Pro Core Data, в которой говорится следующее:

... локальное кэширование удаленных данных может выиграть от постоянного хранения в памяти магазины.

Я не вижу, как кэширование данных в постоянном хранилище в памяти может быть более полезным, чем просто привязка корневого контроллера вашего приложения к данным. Может ли кто-нибудь более подробно рассказать о тех ситуациях, когда постоянное хранилище в памяти может быть полезным?

Ответы [ 3 ]

5 голосов
/ 11 декабря 2011

Ваш вопрос указывает на недопонимание MVC. Вы спросили: «Почему бы модель быстрее кэшировать данные, а не контроллер ». Контроллер вообще не хранит данные, поэтому не имеет значения, насколько быстро он будет или не будет. Модель содержит данные. А в приложении Core Data модель привязана к постоянному хранилищу.

Тот факт, что постоянные хранилища могут находиться в памяти, делает кодирование чрезвычайно удобным, поскольку вызывающим абонентам не нужно беспокоиться о том, как хранятся данные. В вашем примере вызывающие абоненты должны будут вести себя по-разному (иметь дело с разными классами) для данных, хранящихся в локальном хранилище, по сравнению с удаленным хранилищем. Core Data абстрагируется от этого, что позволяет легко перемещать ваш магазин туда, куда вы хотите.

3 голосов
/ 11 декабря 2011

Преимущество использования Core Data с хранилищем в памяти по сравнению с простым развертыванием собственной иерархии классов не-Core Data заключается в том, что вы получаете преимущества от всех других функций Core Data, которые не связаны с сохраняющимися данными.,К ним относятся поддержка отслеживания и отмены, поддержка отношений и распространение изменений, автоматическая проверка, интеграция со стандартными компонентами пользовательского интерфейса (например, NSFetchedResultsController), KVC / KVO и т. Д.

0 голосов
/ 11 декабря 2011

... локальное кэширование удаленных данных

Ключевая работа здесь - это удаленные данные, поэтому вы можете не захотеть хранить эти данные между запусками приложений. В этом случае имеет смысл хранить данные в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...