In fetchedResultsController
mentre si impostano le NSSortDescriptor
IAM questo errore supportati NSSortDescriptor (blocchi comparatori non sono supportati).NSSortDescriptor non supportati (blocchi comparatori non sono supportati)
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Alarm" inManagedObjectContext: managedObjectContext];
[fetchRequest setEntity:entity];
//Below code is not working and causing error. sorting use the hours&seconds part of the time attribute
NSSortDescriptor *sort = [[NSSortDescriptor alloc]
initWithKey:@"time" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components1 = [calendar components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:obj1];
NSDateComponents *components2 = [calendar components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:obj2];
NSDate *date1 = [calendar dateFromComponents:components1];
NSDate *date2 = [calendar dateFromComponents:components2];
return [date1 compare:date2];
}];
che cosa posso fare per ottenere il risultato di cui sopra? –
@Anil Beh, un modo semplice potrebbe essere quello di estrarre tutti i dati in una matrice, quindi ordinare quella matrice con il descrittore di ordinamento dal codice. – Monolo
Mi è piaciuto. Ordinamento esternamente dopo il recupero. Ma il problema che sto usando 'controller: (NSFetchedResultsController *) controller ha fattoChangeObject: (id) anObject atIndexPath: (NSIndexPath *) indexPath forChangeType: (NSFetchedResultsChangeType) digita newIndexPath: (NSIndexPath *) newIndexPath' per aggiornare la vista tabella. Durante l'eliminazione, un'altra riga su indexpath viene eliminata. –