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 - 怎么做?
答案 0 :(得分:0)
如果您避免使用NSDictionaryResultType
,而是让它返回托管对象,则只需通过返回的Category
对象上的相应属性访问Product
个对象。从那里,您可以从每个类别中获得所需的任何信息。但是,如果您这样做,并且结果集非常大,则可能需要set the fetch batch size。