2010-10-11 19 views
0

我尝试计数数字(值8例如)事件的100个属性中的1个为什么fetchedObject计数整个实体 - 不是属性?

并始终得到所有数量的所有属性的事件!

NSFetchRequest *fetchRequests = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entit = [NSEntityDescription entityForName:str inManagedObjectContext:app.managedObjectContext]; 
NSDictionary *entityProperties = [entit propertiesByName]; 
[fetchRequests setReturnsDistinctResults:YES]; 
[fetchRequests setEntity:entit] ; 

[fetchRequests setPropertiesToFetch :[NSArray arrayWithObject:[entityProperties objectForKey:value]]]; 
NSError *error; 
NSArray *fetchedObject = [app.managedObjectContext executeFetchRequest:fetchRequests error:&error]; 
NSManagedObject *fetched ; 
NSManagedObject *fetch ; 
    printf("\n%d", [fetchedObject count]); 

回答

0

您没有谓词。按照书面形式,代码要求为对象图中的每个现有实体Event实体指定一个包含特定属性值的数组。该数组的计数将是对象图中所有Event实例的计数。如果要查找具有特定值的特定Event实例,则需要提供提取谓词。

Predicate Programming Guide

如果你想通过抓取看到返回的阵列上执行操作:Collection Operators

+0

NSPredicate *谓词= [NSPredicate predicateWithFormat:值]。 – 2010-10-12 22:46:40

+0

我认为setPropertiesToFetch - 找到我需要的属性。 NSPredicate错误 - 无法解析格式字符串“values58”' – 2010-10-12 22:48:22

+0

它将找到实体的每个实例的属性,但没有谓词它将为每个实例返回一个属性值。例如。如果你有10个Event对象,你会得到一个包含10个属性值的数组。 – TechZen 2010-10-14 00:03:20

相关问题