Подсчитать сущность в базовых данных с определенным значением - PullRequest
2 голосов
/ 20 июля 2011

У меня есть сущность с некоторым атрибутом.Мои вкладки уже заполняются (таблица SQLite) В одном атрибуте (я назову Attribute1) у меня есть значение bool, меняющееся во время использования моего приложения.

Как я могу вернуть счетчик моих сущностей с помощью атрибута1значение ДА?

Я уже прочитал «Учебное пособие по основным данным» и «Руководство по программированию предикатов», но я не понимаю, как действовать ..

    NSPredicate *predicate= [NSPredicate predicateWithFormat:@"Attribute1 == %@",[NSNumber numberWithBool:YES]];

Я пытался сэто, а потом?кажется не работает ..

1 Ответ

3 голосов
/ 26 сентября 2011

Лучше всего использовать метод countForFetchRequest.Настройте запрос предиката и выборки, но вместо фактической выборки выполните countForFetchRequest следующим образом:

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];

NSPredicate *predicate = 
    [NSPredicate predicateWithFormat:@"Attribute1 == %@",
        [NSNumber numberWithBool:YES]];

[request setPredicate:predicate];

NSUInteger count = [myManagedObjectContext countForFetchRequest:request error:nil];

Дополнительную информацию можно найти в Документах Apple API:

countForFetchRequest: error: возвращает количество объектов, которые должен был бы вернуть данный запрос на выборку, если бы он был передан executeFetchRequest: error:.

  • (NSUInteger) countForFetchRequest: (NSFetchRequest )ошибка запроса: (NSError *) ошибка Параметры запроса Запрос выборки, который задает критерии поиска для выборки.error Если при выполнении выборки возникает проблема, при возврате содержится экземпляр NSError, который описывает проблему.Возвращаемое значение Число объектов, которое заданный запрос на выборку вернул бы, если бы он был передан executeFetchRequest: error: или NSNotFound в случае возникновения ошибки.

Доступность Доступно в iOS 3.0 и более поздних версиях.Объявлено в NSManagedObjectContext.h

...