2012-03-22 4 views
0

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

- (void)setupFetchedResultsController 
{ 
    // 1 - Decide what Entity you want 
    NSString *entityName = @"Snag"; // Put your entity name here 
    NSLog(@"Setting up a Fetched Results Controller for the Entity named %@", entityName); 

    // 2 - Request that Entity 
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:entityName]; 

    // 3 - Filter it if you want 
    request.predicate = [NSPredicate predicateWithFormat:@"project.id = %@", projectPassedToController.id]; 

    // 4 - Sort it if you want 
    request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"dateTaken" 
                        ascending:YES 
                         selector:@selector(localizedCaseInsensitiveCompare:)]]; 
    // 5 - Fetch it 
    self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request 
                     managedObjectContext:self.managedObjectContext 
                      sectionNameKeyPath:nil 
                        cacheName:nil]; 

Однако, я только хочу, чтобы вернуть проекты, которые имеют тот же уникальный идентификатор в качестве одного который передается этому контроллеру View (с использованием переменной ProjectPassedToController)

Я не хочу фильтровать по имени project.name, так как это поле доступно для редактирования пользователем. Мне нужно отфильтровать уникальный идентификатор проекта, но я не уверен, как это сделать.

ответ

0

Решил это, отследив связь между проектом и человеком.

request.predicate = [NSPredicate predicateWithFormat:@"belongsToProject = %@", _selectedProject]; 
Смежные вопросы