IOSQueryable 0.0.3

IOSQueryable 0.0.3

测试测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最新版本2014年12月

未指定 维护。



  • Marty Dill

ios-queryable 是一个 Objective-C 类别,它为 Core Data 提供了 مثل功能性。

厌倦了编写样板 Core Data 代码?不能没有 LINQ?ios-queryable 正适合您!

它支持查询组合和延迟执行,并实现了 IEnumerable 的一些方法,包括 where、take、skip、orderBy、first/firstOrDefault、single/singleOrDefault、count、any 和 all。

它允许您编写如下代码

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

而不是像这样

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];

它还支持 NSFastEnumeration 协议,允许在 foreach 循环中轻松使用。

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

用法

要使用 ios-queryable,只需将 NSManagedObjectContext+IQueryable.h 和 NSManagedObjectContext+IQueryable.m 拷贝到您的项目文件夹中。然后, simply include the header file,并开始编写您的查询!

有关示例,请查看测试项目中的测试。