У меня есть приложение, использующее базовые данные, которое имеет отношение, которое я хотел бы сгруппировать. У меня есть классы NSManagedObject, которые были сгенерированы моим файлом .xcdatamodel, и в большинстве случаев все работает нормально.
Учитывая отношения родитель / ребенок, я хотел бы сделать следующее:
У родителей есть коллекция детей. У детей есть свойство groupByProperty, по которому я хотел бы сгруппировать.
Следующий код:
NSSet *allChildren = parent.children;
NSArray *groups = [allChildren valueForKeyPath:@"@distinctUnionOfObjects.groupByProperty"];
Child *child = [groups objectAtIndex:x]; //x is the row that I would like to retrieve
создает NSInvalidArgumentException при попытке установить дочерний указатель.
Однако, когда я делаю это:
NSSet *allChildren = parent.children;
NSArray *groups = [[NSArray alloc] initWithArray:[allChildren valueForKeyPath:@"@distinctUnionOfObjects.groupByProperty"]];
Child *child = [groups objectAtIndex:x]; //x is the row that I would like to retrieve
все отлично работает.
Может кто-нибудь объяснить это поведение? Я схожу с ума, пытаясь понять, как это работает.
Заранее благодарим за любую помощь, которую вы можете оказать ...
Chris