0

iPhone CoreData 时髦的 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.. 如何使用它?

也许我应该使用:[re​​quest setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"Categories.Code"]]];

在不同的 NSDictionary 中获取 NSStrings?

或者

按 ID 查找类别 - 怎么做?

4

1 回答 1

0

如果您避免使用NSDictionaryResultType,而是让它返回托管对象,则可以Category通过返回对象上的适当属性访问Product对象。从那里,您可以从每个类别中获取所需的任何信息。虽然,如果你这样做,并且有一个非常大的结果集,你可能想要设置 fetch batch size

于 2010-12-10T07:19:33.170 回答