0

我有一个 tableView,如果这个实体属性之一等于一个字符串,它应该只显示 coreData 实体的对象。

有一个名为Buy的实体,它的一个属性是一个名为position的字符串

在我的 tableViewController 代码中是:

@property (strong) NSMutableArray *buy;

- (NSManagedObjectContext *)managedObjectContext
{
    NSManagedObjectContext *context = nil;
    id delegate = [[UIApplication sharedApplication] delegate];
    if ([delegate performSelector:@selector(managedObjectContext)]) {
        context = [delegate managedObjectContext];
    }
    return context;
}

    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];    
        NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Buy"];
            self.buy= [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];  

        [self.tableView reloadData];
    }

现在我尝试只显示包含等于“a”的位置字符串的Buy对象。但我不知道如何编写 if 条件。

提前感谢您的回答。

4

1 回答 1

2

请执行下列操作 :-

NSString *str="a";
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"position == %@",str]; 

因此,viewDidAppear 函数变为:-

- (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];    
        NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
        NSString *str="a";
        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"position == %@",str]; 
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Buy"];
        [fetchRequest setPredicate : predicate ];
            self.buy= [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];  

        [self.tableView reloadData];
    }
于 2013-08-07T15:58:31.167 回答