2015-05-28 8 views
10

Prima di andare troppo lontano nella mia domanda. Il mio obiettivo, che può influenzare le tue risposte, è quello di rimuovere i dati Object se non è più nel cloud.Elimina tutti i dati dallo specifico Oggetto reame Swift

Quindi, se ho una matrice ["one", "two", "three"]

Poi nel mio server ho rimuovere "two"

voglio che il mio regno per aggiornare la modifica.

Immagino che il modo migliore per farlo sia quello di eliminare tutti i dati nello specifico Object, quindi chiamare la mia API REST per scaricare i nuovi dati. Se c'è un modo migliore, per favore fatemelo sapere.

Ok, ecco il mio problema.

Ho un oggetto Notifications()

ogni volta che il mio API REST è chiamato, prima che scarica qualsiasi cosa sto facendo funzionare questo:

let realm = Realm() 
let notifications = Notifications() 
realm.beginWrite() 
realm.delete(notifications) 
realm.commitWrite() 

ottengo questo errore dopo l'esecuzione: Can only delete an object from the Realm it belongs to.

così ho provato qualcosa di simile:

for notification in notifications { 
    realm.delete(notification) 
} 
realm.commitWrite() 

L'errore che ottengo all'interno di xcode è questo: "Type Notifications does not conform to protocol 'SequenceType'

Non proprio sicuro da dove andare.

Solo cercando di capire il regno. Completamente nuovi ad esso

Nota: realm.deleteAll() opere, ma non voglio tutto il mio regno cancellati, basta certo Objects

risposta

23

Siete alla ricerca di questo:

let realm = Realm() 
let deletedValue = "two" 
realm.write { 
    let deletedNotifications = realm.objects(Notifications).filter("value == %@", deletedValue) 
    realm.delete(deletedNotifications) 
} 

o forse questo:

let realm = Realm() 
let serverValues = ["one", "three"] 
realm.write { 
    realm.delete(realm.objects(Notifications)) // deletes all 'Notifications' objects from the realm 
    for value in serverValues { 
    let notification = Notifications() 
    notification.value = value 
    realm.add(notification) 
    } 
} 

Anche se idealmente, devi essere l'impostazione di una chiave primaria su Notifications in modo che si può semplicemente aggiornare gli oggetti quelli esistenti ratto lei che prendere l'approccio estremo di mettere a fuoco tutti gli oggetti locali semplicemente per ricrearli tutti (o quasi).

Problemi correlati