Только маленький вопрос:
У меня есть сущность X с отношением ко многим к сущности Y
В методе viewDidLoad я выбираю все X и сортирую их по имени и по возрастанию, и они отображаются в табличном представлении.
Если вы выберете один из X в tableView, все реляционные Y будут отображены во втором tableView.
Результат этой выборки также включает все реляционные Y для каждого X, поэтому мне не нужно делать дополнительную выборку для Y - но это приводит к моей проблеме:
Y расположены в совершенно случайном порядке (который также меняется при каждом перезапуске приложения) - но я хочу, чтобы они сортировались по дате (<- атрибут в объекте Y) ... как я могу это сделать? </p>
Вот выборка - код
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Customer" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error = nil;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
// Handle the error.
}
[self setCustomersArray:mutableFetchResults];
и результат выглядит примерно так:
Entity X-1
attribute-x-1
attribute-x-2
relation-attribute
relation-entity-y-1
attribute-y-1
attribute-y-2
relation-entity-y-1
attribute-y-1
attribute-y-2
Entity X-2
attribute-x-1
attribute-x-2
relation-attribute
relation-entity-y-1
attribute-y-1
attribute-y-2
может быть, это лучший пример:
Customer
name: Bert
age: 10
customerMeasureRealtions
Measure
score: 5
date: 10.10.2010
Measure
score: 9
date: 20.20.2000
Customer
name: Steve
age: 20
customerMeasureRealtions
Measure
score: 7
date: 07.07.2007
после выборки «Клиенты» сортируются по «имени». Но если я получаю доступ к «Мерам» через «Клиента», порядок «Меров» будет случайным, но я хочу, чтобы они сортировались по «дате».
код для доступа к мерам («клиент» - это объект-объект-клиент или модель),
(«measureForCustomer» - это клиентские условия Realtions):
- (void)loadMeasureDataForCustomer:(Customer *)customer
{
NSSet *customerSet = customer.measuresForCustomer;
measuresArray = [NSMutableArray arrayWithArray:[customerSet allObjects]];
[measuresTable reloadData];
}