Извлеченный объект с индексом 501 имеет название раздела «Порядок выхода из строя» «ЖУРНАЛ ПРИКЛАДНОЙ ФИЗИКИ.Объекты должны быть отсортированы по названию раздела - PullRequest
3 голосов
/ 31 мая 2011

У меня есть база статей с названиями разделов журнала.Одна статья из "Журнала прикладной физики", другая из "ЖУРНАЛА ПРИКЛАДНОЙ ФИЗИКИ".Когда я использую

[[NSSortDescriptor alloc] initWithKey:@"Journal" ascending:YES elector:@selector(caseInsensitiveCompare:)]

для извлечения данных, выдается сообщение об ошибке.

The fetched object at index 501 has an out of order section name 'JOURNAL OF APPLIED PHYSICS. Objects must be sorted by section name'

Я уже использую сравнение без учета регистра, так почему бы это не сработало?Справка?

======= код, используемый для извлечения данных =======

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Article" 
                                          inManagedObjectContext:SharedMOC];

[fetchRequest setEntity:entity];

NSSortDescriptor *journalSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Journal" 
                                                                     ascending:ascending 
                                                                      selector:@selector(caseInsensitiveCompare:)];

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:journalSortDescriptor,  nil];

[fetchRequest setSortDescriptors:sortDescriptors];

NSFetchedResultsController *a = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
                                                                    managedObjectContext:SharedMOC 
                                                                      sectionNameKeyPath:[self selectedSortSection]
                                                                               cacheName:cacheName];

1 Ответ

1 голос
/ 31 мая 2011

Моя интуиция говорит, что вместо:

[fetchRequest setSortDescriptors:[self getSortDescriptor]];

Вы должны написать:

[fetchRequest setSortDescriptors:sortDescriptors];
...