Как написать запрос на выборку Core Data на сложном счетчике выборки - PullRequest
2 голосов
/ 26 января 2012

Я пытаюсь выяснить, как написать следующий SQL в форме операторов извлечения базовых данных:

select count(*) from MYTABLE where MYTABLE.size='2';

На данный момент все, что у меня есть, это:

//setup predicate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY %K == %@", @"size",     searchInteger];
[request setPredicate:predicate];


NSError *error = nil; 
NSInteger count = [managedObjectContext countForFetchRequest:request error:&error]; 
NSLog(@"fetch results count = %i", count);
[request release];

В чем я не уверен:

  1. Является ли это наиболее эффективным / быстрым способом выполнения выборочного подсчета (*) с условием
  2. Есть ли другой способ?сделать предикат здесь более эффективным?

Любые предложения от гуру приветствуются.

Заранее спасибо.Pras.

1 Ответ

0 голосов
/ 26 января 2012

countForFetchRequest:, безусловно, самый эффективный способ подсчета. Я думаю, что вам следует не использовать ключевое слово ANY в строке формата предиката.

Также убедитесь, что ваш searchInteger имеет тип NSNumber. Если нет, вам нужно обернуть его во что-то вроде [NSNumber numberWithInt:searchInteger].

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