简体   繁体   中英

Unable to fetch specific column that from core data

I have created a an entity called Statutory with four columns namely name , complianceName , statMappingName , country

i want a get all complianceName names that matches a specific statMappingName . Following is my code

 NSString *nameToGet = self.statNameArray[indexPath.row] ;
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"complianceName = %@", nameToGet];
        [fetch setPredicate:predicate];

    NSLog(@"n %@",predicate);
    NSError *error = nil;
    NSArray *results = [[self managedObjectContext] executeFetchRequest:fetch error:&error];
    if(results) {
        NSLog(@"Entities with that name: %@", results);
    } else {
        NSLog(@"Error: %@", error);
    }

But it is not providing the compliance name specific to that statMappingName . How can I be able to get all complianceName that has a specific statMappingName ?

If you want to fetch specific column from core data

You can use the below method:-

NSEntityDescription *entity = [NSEntityDescription entityForName:entityname inManagedObjectContext:self.managedObjectContext];

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setReturnsObjectsAsFaults:NO];
[request setEntity:entity];
[request setFetchLimit:1];

[request setPredicate:[NSPredicate predicateWithFormat:@"(complianceName LIKE %@)",nametoGet]];

NSError *error = nil;
NSMutableArray *tempDataArr = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];

Note:-

*entityname: Your entity name

*self.managedObjectContext : Your managedobjectcontext

To Get All compliance Name use the below method

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:entityName]; 
[fetchRequest setReturnsObjectsAsFaults:NO]; 
NSMutableArray *tempDataArr =[NSMutableArray new]; 
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(ANY complianceName LIKE %@)",nametoGet]]; 
tempDataArr = [[self.managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

Try this:-

NSString *firstName = statMappingName;
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"firstName == %@", firstName]];

尝试这些代码以包含statMappingName

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"complianceName contains[c] %@", statMappingName]; 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM