也就是說,我有一個與實體B具有多對多關係的實體A.除其他屬性外,B實例還有一個creationDate。而且我在內存中已經有一個A的託管對象。如何基於B的屬性之一從A到B的多對多關係中獲取特定的B管理對象?
所以我知道我可以通過A的訪問者訪問所有B實例。但我想這樣做的線沿線的東西:
「在A.relationshipName所有學士學位,最近B.creationData返回的管理對象爲B」我怎麼會去它?
也就是說,我有一個與實體B具有多對多關係的實體A.除其他屬性外,B實例還有一個creationDate。而且我在內存中已經有一個A的託管對象。如何基於B的屬性之一從A到B的多對多關係中獲取特定的B管理對象?
所以我知道我可以通過A的訪問者訪問所有B實例。但我想這樣做的線沿線的東西:
「在A.relationshipName所有學士學位,最近B.creationData返回的管理對象爲B」我怎麼會去它?
或者,由於您已經在內存中擁有託管對象A,因此您可以執行內存中已過濾的A - >> B關係。
A *inMemoryA = ...
id byDate = [NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES];
id sorters = [NSArray arrayWithObjects:byDate, nil];
NSArray *sortedBs = [inMemoryA allBs] sortedArrayUsingDescriptors:sorters];
B *mostRecentB = [sortedBs lastObject];
如何執行其他讀取請求:
假設關係的名字在一個一對多側的一個是a
// 1
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"B"
inManagedObjectContext:self.managedObjectContext];
fetchRequest.entity = entity;
// 2
fetchRequest.fetchLimit = 1;
// 3
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"self.a = %@", previouslyFetchedAObject];
// 4
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"creationDate"
ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
fetchRequest.sortDescriptors = sortDescriptors;
用簡單的英語