Ios-queryable Improvements

ios-queryable has seen a few improvements since it’s initial release. This is all part of my effort to make it the best wannable LINQ implementation for iOS development and Core Data.

I have added a bunch of handy new methods from IEnumerable<T>, including:

  • all
  • single / singleOrDefault
  • any
  • count

and the predicate versions of first and firstOrDefault. I have also added support for parameters in where queries (and all of the other queries that support predicates) – something that should’ve been in the initial release.

Finally, IQueryable now supports the NSFastEnumeration protocol, so that you can directly read the results of queries in a foreach loop:

IQueryable* widgetQuery = [self.objectContext ofType:@"Widget"];
foreach(Widget* widget in widgetQuery)
{
    // Do widgety stuff
}

As always, your feedback is appreciated (as are your pull requests!).