核心数据:根据值返回属性

时间:2009-09-04 08:10:31

标签: iphone cocoa-touch core-data nsfetchrequest

任何人都可以指导我如何创建一个获取请求,该请求将查询实体并返回符合我标准的任何属性。

这就是我所拥有的。我有一个有35个属性的实体,都是浮点类型。 我需要的是看到实体的所有属性值<= 0。

我知道如何返回属性的值,但不知道如何返回属性的名称。

谢谢,

1 个答案:

答案 0 :(得分:0)

CoreData不返回属性。它返回实体,然后具有属性。无论如何,你必须做这样的事情:

(以下是从内存中完成的伪代码。请相应处理。)

NSString *query = @"(property1 <= 0) && (property2 <= 0)";
NSPredicate *predicate = [NSPredicate predicateWithFormat:query];
NSEntityDescription *entity = [NSEntityDescription entityDescriptionForName:@"Entity" inManagedObjectContext:context];
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
[fetch setEntity:entity];
[fetch setPredicate:predicate];
NSError *error = nil;
NSArray *entities = [context executeFetchRequest:fetch error:&error];
// Let's just assume we got one
NSManagedObject *obj = [entities objectAtIndex:0];
float value = [obj valueForKey:@"property1"];

或类似的东西。