NSUser
NSUser

Reputation: 1233

How to filter data from Core Data in iOS Using Objective C

I have an entity named Student which has the following structure:

enter image description here

I am fetching data from CoreData as :

 NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Student"];
 self.arrStudents = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

Now I want only those students which have rollNum = 1001.

How can I do this?

Upvotes: 1

Views: 1998

Answers (2)

johny kumar
johny kumar

Reputation: 1270

Try this

**Objective C**

NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Student"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"rollNum = %@", @"1001"];
[fetchRequest setPredicate:predicate];
self.arrStudents = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

**Swift** 
var managedObjectContext: NSManagedObjectContext? = managedObjectContext
var fetchRequest = NSFetchRequest(entityName: "Student")
var predicate = NSPredicate(format: "rollNum = %@", "1001")
fetchRequest.predicate = predicate
arrStudents = try? managedObjectContext?.fetch(fetchRequest)

Upvotes: 3

Vladimir Kofman
Vladimir Kofman

Reputation: 1993

You should use NSPredicate to filter your results:

fetchRequest.predicate = [NSPredicate predicateWithFormat:@"rollNum == %d", 1001];

Upvotes: 1

Related Questions