Pergunta

Estou familiarizado com o uso comum e básico de um NSFetchedResultScontroller gerenciando as linhas de uma tabela, mas tenho um problema interessante.

Meus dados são organizados como tal: Cronograma <--- >> dia <--- >> rota. Atualmente, tenho uma visualização de tabela que possui agendas com um controlador de busca gerenciando a criação e exclusão de horários. Agora, quero criar uma visualização de tabela para rotas/dias.

Gostaria de listar uma rota em cada linha e criar cabeçalhos de seção personalizados que correspondam às informações dentro do dia relevante. Provavelmente, eu poderia invadir algo buscando todas as rotas e, em seguida, seccioná -las pelo relacionamento inverso com o respectivo dia, mas estou preocupado que não consiga aproveitar os métodos de delegadores do controlador de busca para atualizar a tabela quando Os objetos gerenciados mudam.

Alguém tem alguma experiência com isto? Alguma idéia de como avançar?

Obrigado.

Foi útil?

Solução

O NSFetchedResultScontroller foi projetado para esse fim, para que você não precise inventar a roda.

Ao inicializar o seu NSFetchedResultScontroller, considere especificar o SectionNameKeypath. Essa propriedade é exatamente o que você precisa para gerar automaticamente a seção para você.

No seu caso, eu faria o seguinte:

NSEntityDescription: @"Route"
NSPredicate: @"day = %@"
NSFetchedResultsController: sectionNameKeyPath:@"route.day"

Você vê o que quero dizer, se precisar de mais código para esclarecimentos, diga -me.

Outras dicas

Você precisa pesquisar seguindo o relacionamento por meio do NSSET criado para representar a rota->> Caminho do dia em seu banco de dados. Supondo que você nomeou seu relacionamento IstraverSedon e o horário de dia como Isscheduled, seria algo como:

Route *route=[self.fetchedResultsController.fetchedObjects objectAtIndex:0];
for (Day *day in route.isTraversedOn) {
   Schedule *schedule = day.isScheduled;
   NSLog(@"route is traversed on %@ according to schedule %@",day.name,schedule.name);
}

O NSSET apenas salva os IDs reais dos objetos indicados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top