Основная проблема с данными - PullRequest
1 голос
/ 24 февраля 2011

Я работаю с основным приложением данных, и мой запрос состоит в том, что у меня есть дочерние и родительские отношения с родительскими отношениями, имеющими обратные отношения с дочерним объектом, и в родительском объекте с проверенным отношением ко многим,

теперь мой запрос заключается в том, что я хочу получить доступ к имени родителя, скажем, имя матери, просто дав имя ребенку, поэтому я использую предикат для этого вот представление в моем коде

-(void)retrieveviaPredicate
{
    NSFetchRequest *fetchReq = [[NSFetchRequest alloc]init];
    [fetchReq setEntity:[NSEntityDescription entityForName:@"Child" 
                                    inManagedObjectContext:self.managedObjectContext]];

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"Childname=='ravi'"];
    [fetchReq setPredicate:pred];
    NSArray *t = [self.managedObjectContext executeFetchRequest:fetchReq error:nil];

    for(Child *p in t)
    {
        NSLog(@"%@",p.Childname);

        for(Parent *p1 in p.childToParent)
        {
        NSLog(@"Mother name is %@",p1.MotherName);
        }
    }       
}

В приведенном выше кодеЯ получаю предупреждение о том, что

warning:  NSManagedObject' may not respond to '-countByEnumeratingWithState:objects:count:

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

Спасибо и С уважением

Radix

Ответы [ 2 ]

0 голосов
/ 12 февраля 2013

У меня было это предупреждение, когда отношение было установлено 1 к 1, а не 1 ко многим. Исправление типа отношения решило проблему.

0 голосов
/ 24 февраля 2011

Проверьте, является ли childToParent отношением ко многим. Я думаю, это не так.


цикл for будет работать только в том случае, если это будет отношение ко многим:

for(Parent *p1 in p.childToParent)

EDIT:

что произойдет, если вы замените

for(Parent *p1 in p.childToParent)
{
    NSLog(@"Mother name is %@",p1.MotherName);
}

с

NSLog(@"Mother name is %@",p.childToParent.MotherName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...