CoreData - уникальные значения из subEntity ....? - PullRequest
0 голосов
/ 10 декабря 2010

iPhone CoreData. Прикольная запрос на выборку. Я хочу создать функцию для получения массива уникальных категорий кодов для моих продуктов. У меня есть объект «Продукт» и есть поле (Свойство) Категория.Конечно, категория - это отношение к объекту категорий.

Это если моя функция:

- (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.683iApp [3453: 307] - [ShoppingHelper uniqueCategoriesWithQuery:] [Строка 1193] ({Category = "0x495a200";}, {Category = "0x4959ce0";})

Код работает хорошо, но я не могу использовать результатысовсем.У меня есть мои категории ... но ID 'вместо NSStrings .. Как использовать это?

может быть, я должен использовать: [запрос setPropertiesToFetch: [NSArray arrayWithObject: [entityProperties objectForKey: @ "Categories.Code"]]];

, чтобы получить строки NSS в отличительном NSDictionary?

ИЛИ

найти идентификатор категории BY - Как это сделать?

1 Ответ

0 голосов
/ 10 декабря 2010

Если вы избегаете использования NSDictionaryResultType и вместо этого позволяете ему возвращать управляемые объекты, вы можете просто получить доступ к Category объектам через соответствующее свойство в возвращенных Product объектах.Оттуда вы можете получить любую необходимую вам информацию из каждой категории.Хотя, если вы сделаете это, и у вас будет очень большой набор результатов, вы можете установить размер пакета выборки .

...