2015-10-31 12 views
6

Nella mia app l'utente può selezionare più contatti in una collectionview. quando seleziona la proprietà "isSelected" verrà impostato su true e la collectionview aggiorna la cella selezionata. Qui posso riconoscere un piccolo ritardo tra la selezione e l'evidenziazione della cella. Ma nel prossimo passo creo un gruppo con i contatti selezionati e alla fine imposto la proprietà "isSelected" su false. Questo richiede un tempo non accettabile per 50 oggetti (5 secondi) e deve essere regolato.Realm lento all'aggiornamento di più oggetti

Ecco il mio codice per deselezionare tutti i contatti selezionati:

for contact in self.selectedContacts { 
      try! self.realm.write{ 
       contact.isSelected = false; 
       self.realm.add(contact, update: true) 
      } 
     } 

è possibile eseguire un aggiornamento batch in una sola volta?

risposta

15

Prova a mettere il ciclo for all'interno del blocco di scrittura:

try! self.realm.write { 
    for contact in self.selectedContacts { 
     contact.isSelected = false; 
     self.realm.add(contact, update: true) 
    } 
} 
+0

questo è tutto, grazie! E come implementeresti la selezione per ridurre il ritardo di evidenziazione? – netshark1000

+0

È difficile dirlo senza vedere il codice reale. Forse potresti fare un'altra domanda (è comunque un argomento diverso)? – joern

+0

Ok lo farò – netshark1000

Problemi correlati