如果Predicate中的语句不起作用

时间:2013-07-02 18:08:50

标签: ios if-statement nspredicate nsfetchedresultscontroller

IF中的nsfetchresultscontroller声明无效,我无法弄明白为什么。这是一个简单的IF语句,基于使用if ([self.title isEqual: @"Abdominals"])的viewcontroller的静态标题。我的故事板可以在下面看到:

enter image description here

的ViewController

  - (NSFetchedResultsController *)fetchedResultsController {

    if (_fetchedResultsController != nil) {
        return _fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription
                                   entityForName:@"ExcerciseInfo" inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];


    NSSortDescriptor *sort = [[NSSortDescriptor alloc]
                              initWithKey:@"details.muscle" ascending:NO];
    [fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];

    [fetchRequest setFetchBatchSize:20];

// Sort Results    
  if ([self.title isEqual: @"Abdominals"]) {

        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"details.muscle == %@", @"Biceps"];
        [fetchRequest setPredicate:predicate];

    }

    else if ([self.title isEqual: @"Arms"]) {

        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"details.muscle == %@", @"Biceps"];
        [fetchRequest setPredicate:predicate ];

    }

    else {

        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"details.muscle == %@", @"Chest"];
        [fetchRequest setPredicate:predicate ];

 }

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找isEqualToString:

isEqual:比较对象,看起来您想要比较值。