Нужны знания по основным данным - использование NSManagedObject - PullRequest
0 голосов
/ 04 января 2019

Просто быстрый вопрос о загрузке данных в приложение через Core Data - я уже внедрил Core Data, и приложение в значительной степени работает так же, как и до того, как я начал его использовать.

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

Мой вопрос: кажется ли это плохим методом при использовании Core Data? Должен ли я просто извлекать сущности, когда они нужны сценариям, или их «предварительная выборка» с самого начала? Эти данные ограничены (до определенной точки) и не изменяются во время выполнения.

Кроме того, поскольку у меня все сущности в разных массивах в скрипте Manager, я сортирую / фильтрую эти массивы по предикатам, когда скрипту нужно что-то сделать. (что означает, что я никогда не использую выборку базовых данных с предикатом, поскольку все данные уже доступны в массивах менеджера)

Приложение уже готово, просто пытался улучшить производительность, и добавив Core Data, мы получили огромный прирост. Это своего рода последний вопрос (на данный момент), и я не совсем уверен в ответе, так как я никогда раньше не использовал Базовые данные.

Спасибо

1 Ответ

0 голосов
/ 09 января 2019

Все в порядке.

Есть три основных недостатка предварительной выборки:

  1. Вы можете занять слишком много памяти и привести к сбою.
  2. Если объект удаляется, и вы сохраняете указатель на него, приложение вылетает при попытке использовать этот управляемый объект
  3. Загрузка может занять очень много времени, если данных много..

Вы сказали: «Эти данные ограничены (до определенной точки) и не изменяются во время выполнения», поэтому кажется, что ни одна из этих проблем не относится к вам.

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

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