Сохранение основных данных в памяти - PullRequest
0 голосов
/ 30 ноября 2018

Я создаю приложение, которое использует TabBarController и имеет несколько представлений, показывающих те же данные, но разными способами.Одним из представлений является TableView, а другим - представление Map.

Данные поступают с сервера, и я хотел бы иметь возможность хранить эти данные, к которым они доступны из нескольких контроллеров представления (есть«Единый источник правды»).Я считаю, что Core Data - хороший выбор, особенно потому, что я считаю класс NSFetchedResultsController довольно удобным для работы при работе с табличными представлениями.

Данные должны храниться только во время использования приложения, поэтому я думаю об использовании Core Data без фактического сохранения чего-либо на диск.Я увидел, что существует тип магазина In-memory, который, как мне кажется, мне нужен.Однако я обнаружил, что, просто вставив новую сущность в мой контекст (еще не вызывая context.save()), NSFetchedResultsController может уже обнаружить изменения и обновить мой пользовательский интерфейс.

Вопрос 1: Действительно ли необходимо вызывать context.save() при использовании типа магазина In-memory?

Я считаю, что это может быть необходимо в случае нескольких контекстов.

Вопрос 2: Если нет необходимости звонить по номеру context.save(), имеет ли значение, какой тип постоянного хранилища я использую?

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 30 ноября 2018

Вопрос 1: действительно ли необходимо вызывать context.save () при использовании типа хранилища в памяти?

Я полагаю, что это может быть необходимо в случае нескольких контекстов.

Это верно.Если вы используете общий шаблон наличия одного контекста для пользовательского интерфейса и другого для обработки входящих сетевых данных, вам необходимо сохранить изменения для обновлений из одного контекста, чтобы они были доступны в другом.

Вопрос 2: Если нет необходимости вызывать context.save (), имеет ли значение, какой тип постоянного хранилища я использую?

Если вы используете хранилище в памяти, тип вашего постоянного хранилищаNSInMemoryStoreTypeВажно то, что выбор правильного типа магазина - это то, как вы получаете его в хранилище в памяти.

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

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