Как получить уникальные отношения сущностей в базовых данных - PullRequest
2 голосов
/ 05 января 2012

Должен быть более простой способ сделать это. У меня есть поиск и поиск, но я не могу найти ответ, который ищу.

Скажем, у нас такие отношения EntityA <- >> EntityB

Если я создаю 2 экземпляра EntityA с 3 экземплярами Entity B для каждого.

В моем viewcontroller, который отображает все EntityB для каждого EntityA, он отображает все 6 вместо 3 связанных с ним.

Единственный способ заставить его правильно отображаться, если передать указатель от одного контроллера к другому:

viewController2.entityA = viewController1.entityA;

и затем получить результаты следующим образом:

    NSMutableArray *result = [[NSMutableArray alloc] initWithArray:[entityA.entityBs allObjects]];

У меня сложилось впечатление, что если вы изначально выбираете родительскую сущность, последующие выборки основаны на этом, а не возвращают все.

любая помощь будет оценена.

1 Ответ

2 голосов
/ 05 января 2012

Попробуйте что-то вроде следующего:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *weightEntity = [NSEntityDescription entityForName:@"EntityB" inManagedObjectContext:[[yourCoreDataManager sharedInstance] managedObjectContext]];
[fetchRequest setEntity:weightEntity];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"EntityA.name LIKE %@", @"EntityAName"]];

NSError *error = nil;
NSArray *result = [[yourCoreDataManager sharedInstance] managedObjectContext] executeFetchRequest:fetchRequest error:&error];

Таким образом, вы запрашиваете только те объекты B, которые принадлежат данному объекту A.

...