我有一個包含三個實體的核心數據模型:Notification
,Group
和Customer
。這些是它們之間的關係:對於核心數據中的多對多關係,sectionNameKeyPath的值
- 一位顧客屬於很多羣體,一個羣體可以有很多顧客。
- 通知被髮送(屬於)到一個組,並且一個組可以接收(有)很多通知。
我想顯示所有通知按客戶分組的UITableView
。我創建了一個NSFetchedResultsController
這樣的:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.fetchBatchSize = 10;
fetchRequest.predicate = nil;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Notification"
inManagedObjectContext:self.managedObjectContext];
fetchRequest.entity = entity;
// Default sort descriptors are built in a separate custom method
NSArray *sortDescriptors = [self getDefaultSortDescriptorsForEntity:entity];
fetchRequest.sortDescriptors = sortDescriptors;
return [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"group.customers.firstName"
cacheName:nil];
假設這是檢索按客戶分組的所有通知的有效途徑(我不知道,要麼)的iOS拋出以下異常:
@"Failed to fetch all Notification objects"
@"Reason: Invalid to many relationship in setPropertiesToFetch: (group.customers.firstName) (NSInvalidArgumentException)"
我已經審查了一次又一次的關係,看看是否有遺漏,一切似乎都是正確的。我可以爲所有實體創建和刪除對象,並且它們之間的鏈接也是正確的。
我的問題是:是否有可能遍歷sectionNameKeyPath
值中的幾個關係?在這種情況下應該如何處理多對多的關係?
「通知」可以屬於多個「客戶」。您是否想要在其所屬的每個「客戶」部分中顯示通知? –
@MartinR是的,在這個特定的應用程序中,可以在幾個部分重複相同的通知。 – elitalon
我不認爲這是可能的與獲取結果控制器,因爲FRC無法返回具有重複元素的對象列表。 –