У меня проблема (если честно, проблема понимания) с NSFetchedResultsController и новыми отношениями NSOrderedSet, доступными в iOS 5.
У меня есть следующая модель данных (хорошо, моя настоящая модель не выдвижная иsock!На Drawer
отношение socks
представляет собой упорядоченное отношение ко-многим с Sock
.Идея заключается в том, что носки находятся в ящике в определенном порядке.На Sock
отношение drawer
является инверсией отношения socks
.
В UIViewController я рисую UITableView на основе этих объектов.Я кормлю стол, используя NSFetchedResultsController
.
- (NSFetchedResultsController *)fetchedResultsController1 {
if (_fetchedResultsController1 != nil) {
return _fetchedResultsController1;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Sock" inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"drawer.socks" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
self.fetchedResultsController1 = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[NSManagedObjectContext MR_defaultContext] sectionNameKeyPath:nil cacheName:@"SocksCache"];
self.fetchedResultsController1.delegate = self;
return _fetchedResultsController1;
}
Когда я запускаю это, я получаю следующую ошибку: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'to-many key not allowed here'
Это имеет смысл для меня, так как отношение представляет собой NSOrderedSet
, а не одну сущность для сравнениядля целей сортировки.
Я хочу добиться, чтобы Socks
отображался в UITableView
в порядке, указанном в отношении socks
.Я действительно не хочу иметь порядок сортировки, но NSFetchedResultsController
, который является отличным компонентом, настаивает на том, что он должен быть.Как я могу сказать ему использовать порядок носков на сущности Drawer.Я не хочу, чтобы в таблице вообще отображались объекты Drawer.
Примечание: Я использую это только в приложении iOS5, поэтому упорядоченные отношения доступны.
Любой, кто может предложить мне любое направление, будет очень признателен.Спасибо за потраченное время.
Редактировать: Итак, просмотр таблицы, носки дисплея, делают это только для одного ящика.Я просто хочу, чтобы табличное представление соблюдало порядок, который содержит отношение socks.Я не уверен, что установить критерии сортировки, чтобы убедиться, что это происходит.