У меня есть три типа пользовательских классов (см. ниже) и три массива: componentList, componentGroupList и componentGroupItemList. Массивы не связаны, каждый из них содержит все объекты. Мне нужно отфильтровать определенный компонент, все связанные с ним группы и все связанные с ними элементы.
Теперь я знаю, как отфильтровать componentList с помощью @"componentId==123" и получить желаемый объект компонента. Я также могу отфильтровать его группы из componentGroupList, используя тот же предикат, потому что объект ComponentGroup содержит тот же ключ componentId. Однако я не знаю, как отфильтровать связанные объекты ComponentGroupItem из componentGroupItemList.
В настоящее время у меня есть отфильтрованный массив, содержащий объекты ComponentGroup, и я хотел бы отфильтровать componentGroupItemList, используя этот массив. Возможно ли это, или мне нужно извлечь все значения «groupId» из filteredComponentGroupList в строку, а затем сделать какой-то предикат?
Классы:
@interface Component : NSObject
@property (nonatomic, strong) NSNumber *componentId;
@property (nonatomic, strong) NSString *title;
@end
@interface ComponentGroup : NSObject
@property (nonatomic, strong) NSNumber *groupId;
@property (nonatomic, strong) NSNumber *componentId;
@property (nonatomic, strong) NSString *title;
@end
@interface ComponentGroupItem : NSObject
@property (nonatomic, strong) NSNumber *itemId;
@property (nonatomic, strong) NSNumber *groupId;
@property (nonatomic, strong) NSString *title;
@end