Базовые данные (iPhone) - ограничение результатов выборки в отношениях

StackOverflow https://stackoverflow.com/questions/1800084

Вопрос

Недавно я просматривал базовые данные для iPhone, и у меня есть один запрос, на который я не смог найти ответ в литературе.

Давайте представим, что у меня есть объект модели Пользователь с отношением "многие-многие" с объектом Покупка . Пользователь может совершить тысячи покупок.

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

Я бы предпочел, если бы был какой-то способ ограничить количество покупок объектов, выбираемых с помощью:

1) навязывание каких-либо критериев (например, только покупки свыше & # 163; 1000 и т. д.); или

2) выборка производится только партиями, если вышеописанное невозможно.

Возможно ли вышеизложенное? Я просто обеспокоен тем, что из-за ограниченной памяти iPhone я рискую перегрузить его тысячами ненужно извлеченных объектов.

Заранее спасибо за любые ответы.

Это было полезно?

Решение

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

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

Другие советы

<Ол>
  • Использовать извлеченное свойство
  • Используйте NSFetchedResultsController
  • Ответы на эти и последующие вопросы вы найдете в Руководство по программированию основных данных для iPhone.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top