Sto creando una tabella sezionata con risultati recuperati, ma sto facendo fatica a trovare le sezioni personalizzate elaborate.Utilizzo di sezioni personalizzate con NSFetchedResultsController?
Normalmente uno avrebbe solo un attributo da ordinare e utilizzare sectionNameKeyPath:
per generare le sezioni. Ma il mio attributo di ordinamento è calcolato al volo, e io non riesco a ottenere il fetchedResultsController
di utilizzare correttamente ...
Aggiornamento: Utilizzando jbrennan 's consigli qui sotto, sono davvero vicino al previsto funzionalità. Ho aggiunto una categoria a NSDate
che restituisce un numero "giorni fa"; mettendo che qui mi dà sezioni in base a quei numeri:
NSFetchedResultsController *aFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:@"myDateAttribute.daysAgo"
cacheName:@"Root"];
Ecco dove mi sono bloccato: non ho bisogno di loro ordinati per "giorni fa," Ho bisogno di loro ordinati tramite alcuni calcoli sulla base di altri attributi nell'entità. Quindi non posso che chiamare metodo personalizzato Categoria, ho bisogno di chiamare un metodo con argomenti, in questo modo:
[myDateAttribute sortingRoutine:thisObject.value]
O qualcosa del genere. Spero che abbia un certo senso. Grazie mille se puoi aiutare :)
Aha! Questo ha funzionato magnificamente, grazie. Ora l'app si arresta in modo anomalo quando si salvano nuove attività, ma ci lavorerò sopra per un po 'e postare una domanda separata se necessario. :) – Triz
L'app non dovrebbe arrestarsi in modo anomalo durante il salvataggio: le proprietà transitorie non vengono memorizzate, quindi questa non può essere la causa in alcun modo. –
In realtà non si arresta in modo anomalo durante il processo di salvataggio, ma * dopo * it, quando la vista ritorna alla tabella in sezione. Non lo facevo prima di questi cambiamenti, e non ho fatto nient'altro, quindi penso che sia correlato. Forse 'awakeFromFetch:' non viene chiamato quando riappare la vista? – Triz