Skip to content
This repository was archived by the owner on Sep 13, 2025. It is now read-only.

martydill/ios-queryable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#ios-queryable is an Objective-C category that provides IQueryable and IEnumerable-like functionality to Core Data.

Tired of writing boilerplate Core Data code? Can't live without LINQ? ios-queryable is for you!

It supports query composition and deferred execution, and implements a subset of IEnumerable's methods, including where, take, skip, orderBy, first/firstOrDefault, single/singleOrDefault, count, any, and all.

It lets you write code like this:

NSArray* widgets = [[[[[self.managedObjectContext ofType:@"Widget"] where:@"Type == 'abc'"] orderBy:@"createddate"] take:5] toArray];

instead of like this:

NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription* entity = [NSEntityDescription entityForName:@"Widget" inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; NSPredicate* predicate = [NSPredicate predicateWithFormat: @"type == 'abc'"]; [fetchRequest setPredicate:predicate]; NSSortDescriptor* sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"createddate" ascending:YES]; NSArray* sortDescriptors = [[NSArray alloc] initWithObjects: sortDescriptor, nil]; [fetchRequest setSortDescriptors:sortDescriptors]; [fetchRequest setFetchLimit:5]; NSError* error; NSArray* widgets = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

It also supports the NSFastEnumeration protocol, allowing for easy use in foreach loops:

foreach(Widget* widget in [self.managedObjectContext ofType:@"Widget"]) { // Do widgety stuff }

#Usage To use ios-queryable, simply copy NSManagedObjectContext+IQueryable.h and NSManagedObjectContext+IQueryable.m into your project folder. Then, simply include the header file, and start writing your queries!

For examples, check out the tests in the tests project.

About

ios-queryable is an implementation of IQueryable/IEnumerable for Core Data

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors