Если заявление на FetchRequest - PullRequest
       32

Если заявление на FetchRequest

0 голосов
/ 29 апреля 2011

Как мне сделать так, чтобы я получал результаты только с индикатором == 1. (у меня индикатор подключен к переключателю UIS на другом экране). поэтому я хочу таблицу названий, но только если индикатор равен 1.

-(void)reload
{
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
    [request setEntity:entity];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Title" ascending:YES]; 
    NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc]initWithKey:@"indicator" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, sortDescriptor2, nil]; 
    [request setSortDescriptors:sortDescriptors];
    [sortDescriptors release]; 
    [sortDescriptor release];

    NSError *error = nil; 
    NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 
    if (mutableFetchResults == nil) {
        // Handle the error.
    }

    [self setList:mutableFetchResults]; 
    [mutableFetchResults release]; 
    [request release];
}

1 Ответ

0 голосов
/ 29 апреля 2011

Добавьте предикат к вашему запросу на выборку:

[request setPredicate:[NSPredicate predicateWithFormat:@"indicator == 1"]];

Это приведет к тому, что будут возвращены только те события, для которых он установлен.Я бы также удалил ваш sortDescriptor2 из дескрипторов сортировки.Нет смысла выполнять работу по сортировке индикаторной клавиши, когда все они имеют одинаковое значение.

...