как получить каждый n-й объект, используя данные ядра - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть сущность Question. Сущность Question имеет свойство Number. Мне нужно выбрать каждый 20-й вопрос: 1, 21, 41, 61 и т. Д. Как я могу это сделать?

Ответы [ 2 ]

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

Создайте NSFetchRequest как обычно, а также экземпляр NSPredicate, который использует оператор модуля, например, следующий непроверенный предикат:

NSPredicate *idPredicate = [NSPredicate predicateWithFormat:@"modulus:by:(Number, 20) == 1"];

Добавьте предикат в запрос выборки и выполнитевыборка, как обычно.

Или создайте NSSet значений идентификаторов, которые включают {1, 21, 41, ...} и используйте это с предикатом:

NSSet *idSet = /* set of NSNumber instances including 1, 21, etc. */
NSPredicate *idPredicate = [NSPredicate predicateWithFormat:@"Number IN %@", idSet];

Я не проверял это, но любой подход должен приблизить васЯ думаю.

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

Может быть возможно создать маску поиска с NSPredicate для последней цифры. Если у вас есть менее 1 000 000 вопросов, я бы собрал все вопросы и отфильтровал числа, схематически: BOOL keepNumber = ((record.Number % 20) == 1). В целом, количество смарт-карт для iPad / iPhone RAM / CPU GHz / Core Data возрастает, и затраты на простой GET вряд ли будут важны, особенно по сравнению с более сложным GET, поскольку предикат поиска в Core Data все равно придется изучить каждую запись.

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