#iphone #objective-c #ipad #core-data
#iPhone #objective-c #iPad #core-данные
Вопрос:
Что я делаю:
Я использую CoreData для хранения информации для моего приложения. Наиболее логичный способ сделать это в моем случае — использовать indexPaths с 3 измерениями, например:
unsigned indexes[3] = {week, day, position};
NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexes length:3];
return [self.fetchedResultsController objectAtIndexPath:indexPath];
Во-первых, это нормально — или объекты должны строго храниться в двумерном indexPath?
Где я застрял:
Если это нормально, как я могу исправить следующий метод:
- (int)numEventsForWeek:(UInt8)week day:(dayOfWeek)day;
{
id <NSFetchedResultsSectionInfo> sectionInfo = [[[self.fetchedResultsController sections] objectAtIndex:week] objectAtIndex:day];
return [sectionInfo numberOfObjects];
}
В настоящее время происходит сбой из-за нераспознанной ошибки селектора (второй objectAtIndex:) — Но если я удалю второй objectAtIndex:, sectionInfo выдаст мне только количество объектов, суженных до второго измерения индекса (что слишком много объектов, мне нужно, чтобы число было сужено до третьего измерения).
Комментарии:
1. Не могли бы вы объяснить базовую модель данных core?
2. @VinceBurn он состоит из одного объекта ( связанный класс) с небольшим количеством свойств. Этот объект / класс представляет событие, и я пытаюсь сохранить / получить к ним доступ на основе недели и дня недели, когда они происходят (события ежемесячны). После некоторых дополнительных исследований похоже, что я могу использовать только многомерные индексы, если я реализую путь к ключу имени раздела для контроллера полученных результатов?
Ответ №1:
Почему бы просто не использовать предикат для фильтрации результата, который вы хотите получить?
Как предикат для определенного месяца, недели и дня недели.
Можете ли вы сделать снимок экрана вашего объекта? У меня может быть другая идея…
Комментарии:
1. Спасибо — до сих пор я никогда не осознавал, что существует такая вещь, как фильтр предикатов. После небольшого поиска в Google, похоже, что это гораздо более логичный способ достичь того, чего я хочу — приветствия.