我有兩個實體,A和B,以下關係式:過濾NSFetchedResultsController只得到一些關係的對象
A - > b - 要多
乙 - > - 要一個
換句話說:一個可以有零個或多個B和B只能有一個A.
我想用NSFetchedResultsController顯示在表視圖我的參賽作品,但我想通過一個過濾結果 - > B關係。 這樣做,我有一個UISegmentedControl,如果用戶點擊第一個段我想只顯示與B至少有一個關係的條目,並且如果第二個段被點擊,我想只顯示沒有條目與B的關係
我使用CoreData的NSManagedObject,所以我的目的有與A的關係,所有的B條目的NSSet財產
這是如何我實例化我的NSFetchedResultsController:
NSManagedObjectContext *context = self.managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:"A" inManagedObjectContext:self.managedObjectContext];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:descriptorKey ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setEntity:entity];
NSFetchedResultsController *controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:context
sectionNameKeyPath:controllerKey
cacheName:nil];
NSError *error;
BOOL success = [controller performFetch:&error];
if (success) {
return controller;
}
此代碼獲取所有A條目,我如何製作該過濾器?
您的提取請求沒有謂詞。這就是您定義過濾器的地方。 – Abizern
但是,我怎麼能做一個謂詞過濾關係?我試圖通過驗證NSSet計數,但迄今爲止沒有成功。 – douglasd3