Как установить предел выборки для объектов, извлекаемых посредством отношения ко-многим? - PullRequest
0 голосов
/ 17 июля 2011

Скажем, у меня есть User и File с отношением ко многим, называемым files в моем стеке основных данных. В своем коде я загружаю файлы пользователя в NSArray и перебираю массив, выполняя различные функции над файлами пользователя. У меня есть один пользователь с 7000 файлов. Я считаю, что было бы хорошо, чтобы мой код работал с небольшими «кусочками» файлов пользователя, а не с целыми 7000 одновременно. Я знаю, что fetchLimit доступно (и что в хранилищах SQLLite будет извлечена только сумма, установленная fetchLimit) - так что, я должен игнорировать отношение files и вместо этого делать ограниченную выборку, используя setFetchLimit? Предложения будут приветствоваться, спасибо!

Если у кого-нибудь есть пример кода, который достигает того, что мне нужно, это было бы еще лучше.

1 Ответ

1 голос
/ 18 июля 2011

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

Однако я очень сомневаюсь, что вам нужно что-то вообще.Если вы не прошли тестирование и не обнаружили, что большие отношения вызывают проблемы, нет никаких оснований ожидать, что это произойдет.В Core Data есть много хитростей для сохранения ресурсов, которые используются за кулисами.Я думаю, что маловероятно, что большие простые отношения действительно вызовут проблемы.Базовые данные не будут бездумно загружаться в 7 000 экземпляров объектов.

Проверьте, прежде чем добавить дополнительную сложность.Помните, что «Аксойм Дональда Кнутса» «преждевременная оптимизация - корень всего зла». Время, затраченное на решение проблемы, с которой вы никогда не столкнетесь, является пустой тратой и добавляет ненужную и опасную сложность.

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