2016-05-27 14 views
6

Sto provando a sviluppare la mia app con Realmdatabase.Reame: l'ordine dei record è stato modificato

Oggi ho avuto il problema seguente: Ho aggiunto un elenco di record alla tabella e poi provo a cancellarne uno. dopo aver eliminato l'ordine del resto è stato modificato (è diverso con l'ordine prima dell'eliminazione). si prega di vedere le immagini qui sotto per vedere i dettagli.

Prima di eliminare

enter image description here

Dopo eliminare il terzo elemento

enter image description here

E la domanda è: Questo è è una funzione o un bug? E come posso mantenere l'ordine dei record?

So che posso ottenere facilmente l'ordine corretto come desidero aggiungendo un nuovo campo come createTime o qualcosa di simile, ma voglio trovare una soluzione molto semplice come config per Realm.

risposta

4

Gli elementi in un reame non sono ordinati per impostazione predefinita, quindi è necessario pensare a qualsiasi risultato di query come un insieme non ordinato a meno che non venga ordinato in modo esplicito.

Generalmente gli articoli verranno visualizzati nell'ordine in cui sono stati inseriti, ma non è una garanzia. Il motivo di fondo della ragione tecnica è che compattiamo i dati sul disco, quindi se si eliminano gli elementi nel mezzo di un elenco, l'ultimo elemento verrà spostato nella sua posizione.

Quindi la risposta è: Funziona come previsto e dovresti utilizzare un metodo di ordinamento se vuoi che i risultati siano ordinati.

Problemi correlati