Я использую NSPredicate для запроса основного хранилища данных.У меня есть атрибут типа NSNumber.Я хочу получить все атрибуты, которые равны 1.
Я пытался:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"attribute == %i", i];
Где я = 1.
Это работает, но возвращает только первый объект ссоответствующий атрибут.Я хочу ВСЕ объекты с этим атрибутом, когда он равен 1.
Где я иду не так?Я попытался поставить ALL перед запросом, но это вызвало сбой.
Обновление:
Это мой полный код:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person"
inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setResultType:NSDictionaryResultType];
NSNumber *attributeValue = [NSNumber numberWithInt:1];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"attribute == %@",
attributeValue];
[fetchRequest setPredicate:predicate];
NSError *error = nil;
NSArray *fetchResults = [managedObjectContext executeFetchRequest:fetchRequest
error:&error];
return [fetchResults objectAtIndex:0];
А затем:
NSDictionary *dict = [self queryContextWithQuery:nil];
NSLog(@"%@", dict);
Журнал показывает только 1 из 3 возможных объектов, которые он должен показывать.