CoreData - 来自subEntity的唯一值....?

时间:2010-12-10 07:10:29

标签: iphone core-data nsfetchrequest

iPhone CoreData funky fetch-request: 我想构建函数来检索我的产品的Unique-CategoryCodes数组 我有实体“产品”,并有一个字段(属性)类别。 当然,类别是与类别实体的关系。

这是我的功能:

- (NSArray *)uniqueCategoriesWithQuery:(NSString *)query {
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:[self managedObjectContext]];    
NSDictionary *entityProperties = [entity propertiesByName];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
[request setReturnsDistinctResults:YES];
[request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"Code"]]];
[request setResultType:NSDictionaryResultType];
[request setIncludesSubentities:YES];
[request setIncludesPropertyValues:YES];
NSError *fetchError = nil;
NSArray *result = [[self managedObjectContext] executeFetchRequest:request error:&fetchError];
DebugLog(@"%@", result);
if (fetchError == nil && [result count] > 0) {
    return result;
}
return nil;

}

MyResult: 2010-12-10 05:55:33.683 iApp [3453:307] - [ShoppingHelper uniqueCategoriesWithQuery:] [Line 1193](         {         Category =“0x495a200”;     },         {         Category =“0x4959ce0”;     } )

代码效果很好但我根本无法使用结果。我有我的类别......但ID'而不是NSStrings ..如何消费它?

也许我应该使用:     [request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@“Categories.Code”]]];

在独特的NSDictionary中获取NSStrings?

OR

查找分类BY ID - 怎么做?

1 个答案:

答案 0 :(得分:0)

如果您避免使用NSDictionaryResultType,而是让它返回托管对象,则只需通过返回的Category对象上的相应属性访问Product个对象。从那里,您可以从每个类别中获得所需的任何信息。但是,如果您这样做,并且结果集非常大,则可能需要set the fetch batch size