0
EntityA
與EntityB
(和EntityB
與EntityA
有一對一的關係)具有多對多關係。我有一個EntityB
s(或更準確地說,我有一個NSArray
,其中包含NSManagedObject
的實例,代表EntityB
)。我想創建一個NSFetchRequest
,它將獲取與陣列中至少有一個EntityB
s有關係的所有EntityA
。如何爲此獲取請求編寫謂詞?如何爲與多對多關係中的對象相關的對象編寫核心數據謂詞
以下的工作,但我認爲它是次優的;很難神交,我敢肯定,必須有表達的更好的辦法:
NSArray *entityBs = ...;
NSMutableArray *containsEntityBSubPredicates = [NSMutableArray new];
for (NSManagedObject *entityB in entityBs) {
[containsEntityBSubPredicates addObject:[NSPredicate predicateWithFormat:@"%@ IN entityBs", entityB]];
}
NSPredicate *containsEntityBsPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:containsEntityBSubPredicates];
我也試過,但它不工作:
NSArray *entityBs = ...;
NSPredicate *containsEntityBsPredicate = [NSPredicate predicateWithFormat:@"ANY %@ in entityBs", entityBs];
我錯過更簡單的解決方案?