2015-05-28 10 views
10

Zanim przejdę za daleko na moje pytanie. Moim celem, który może wpłynąć na twoje odpowiedzi, jest usunięcie danych Object, jeśli nie jest już w chmurze.Usuń wszystkie dane z określonego obiektu Realm Swift

Więc jeśli mam tablicę ["one", "two", "three"]

Wtedy w moim serwerze usunąć "two"

Chcę moim królestwie, aby zaktualizować zmiany.

Myślę, że najlepszym sposobem na to jest usunięcie wszystkich danych w konkretnej Object, a następnie wywołanie mojego interfejsu REST API w celu pobrania nowych danych. Jeśli jest lepszy sposób, daj mi znać.

OK, więc tutaj jest mój problem.

mam obiektu Notifications()

za każdym razem mój REST API o nazwie, zanim pobierze nic używam to:

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

otrzymuję ten błąd po uruchomieniu: Can only delete an object from the Realm it belongs to.

tak Próbowałem coś takiego:

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

Wystąpił błąd w kodzie xcode: "Type Notifications does not conform to protocol 'SequenceType'

Nie jestem pewien, dokąd się udać.

Po prostu próbuję rozgryźć królestwo. Zupełnie nowe do niego

Uwaga: realm.deleteAll() prace, ale nie chcę wszystkim moim królestwie usunięte, po prostu pewne Objects

Odpowiedz

23

Patrzysz na to:

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

lub być może w ten sposób:

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) 
    } 
} 

Choć idealnie, byłbyś ustawienie klucza podstawowego na Notifications, dzięki czemu można łatwo aktualizować te istniejące obiekty szczura jej niż podejście ekstremalne nuking wszystkich lokalnych obiektów po prostu odtworzyć je wszystkie (lub prawie).

Powiązane problemy