0

このエンティティ属性の 1 つが文字列と等しい場合にのみ、coreData エンティティのオブジェクトを表示する tableView があります。

Buyというエンティティがあり、その属性の 1 つは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 に答える