Я работаю над примером проблемы замены hashCode и метода equals, но получаю сообщение об ошибке: « Нет доступных экземпляров типа CustomHashCodeExample. Должен квалифицировать выделение с помощью включающего экземпляра типа CustomHashCodeExample (например, xnew A (), где x - это экземпляр CustomHashCodeExample). " для данной недели и хочу отображать их в UITableView с разбивкой по одному разделу на день недели.
Проблема заключается в том, что мне нужно отображать 7 разделов для каждого дня недели (отображается сообщение «Нет заказов 'ячейка, в которой раздел / дата не имеют бронирований).
У меня есть скриншот приложения в его нынешнем виде здесь (извините, я пока не могу публиковать изображения, так как я новичок в StackOverlow)
На данный момент я достигаю этого с помощью метода 'fetchResults', который получает заказы и упорядочивает их по массиву возможных дат:
- (void)refetchResults {
// Drop bookings Array, replacing with new empty one
// 7 slots for 7 days each holding mutable array to recieve bookings where appropraite
self.bookings = [NSArray arrayWithObjects:[NSMutableArray array],
[NSMutableArray array], [NSMutableArray array],
[NSMutableArray array], [NSMutableArray array],
[NSMutableArray array], [NSMutableArray array], nil];
// Create the fetch request for the entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Booking" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Limit to this weeks data
[fetchRequest setPredicate:
[NSPredicate predicateWithFormat:@"(date >= %@) && (date <= %@) && (resource == %@)",
firstDate,lastDate,resourceId]];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"recId" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, sortDescriptor2, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Fetch records in to array
NSError *error;
NSArray *results = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (results == nil) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
[fetchRequest release];
[sortDescriptor release];
[sortDescriptor2 release];
[sortDescriptors release];
// Walk through records and place in bookings Array as required
for (Booking *item in results) {
// Decide on array index by difference in firstDate and booking date
int idx = (int)[[item date] timeIntervalSinceDate:firstDate]/86400;
// Add the item to the approp MutArray
[(NSMutableArray *)[bookings objectAtIndex:idx] addObject:item];
}
// Reload table
[tableView reloadData];
}
Мой вопрос: есть ли способ добиться тот же результат с использованием NSFetchedResultsController? Каким-то образом мне нужно было заставить NSFetchedResultsController иметь 7 разделов, по одному на каждый день недели, некоторые из них, возможно, не имеют бронирований.
Любая помощь очень ценится :)