UITableView
aggiornamenti tra beginUpdates
e endUpdates
le chiamate vengono raggruppate insieme e tutte eseguite allo stesso tempo. documentazione di Apple è specifico circa l'ordine in cui vengono eseguite insert
e delete
operazioni:UITableView Elimina, Inserisci e sposta ordinamento in aggiornamenti batch
eliminazione e operazioni di ricarica all'interno di un blocco di animazione specificare quali righe e le sezioni nella tabella originale devono essere rimossi o ricaricati; gli inserimenti specificano quali righe e sezioni devono essere aggiunte alla tabella risultante. I percorsi indice utilizzati per identificare sezioni e righe seguono questo modello. L'inserimento o la rimozione di un elemento in un array mutabile, d'altra parte, può influire sull'indice dell'array utilizzato per l'operazione successiva di inserimento o rimozione; ad esempio, se si inserisce un elemento in un determinato indice, gli indici di tutti gli articoli successivi nell'array vengono incrementati.
E 'anche interessante notare che:
chiamate verso beginUpdates e endUpdates possono essere nidificate; tutti gli indici sono trattati come se ci fosse solo il blocco di aggiornamento esterno.
[enfasi è mia]
Quindi: pensare eliminazioni come si verificano in un primo passaggio, e poi eventuali inserimenti accadendo seguono questo, utilizzando le nuovi percorsi indice che si traducono dopo le eliminazioni .
Questo è utile. Tuttavia,, non ho trovato alcuna documentazione su dove si verificano le mosse di riga (e sezione), quale indicizzazione dovrebbero usare e se questo influisce sugli altri passaggi. Qualcuno sa?
Provo a sostituire tableView.move con eliminazioni e inserimenti batch perché conosco l'ordine delle eliminazioni e delle inserzioni. Ma senza fortuna, la mossa sembra qualcosa di diverso. Questo mi ha fatto esitare usando gli aggiornamenti in batch con FetchedResultsController perché non so cosa fare con 'NSFetchedResultsChangeType.move'. Hai qualche progresso? – jchnxu
Nessun'altra informazione, mi dispiace, probabilmente è possibile provarlo? – Benjohn