ich mit dem folgenden Code ein Lied zu einer Liste in meinem Playlist-Objekt am Zusatz:iOS - Element Anfügen in Bereich zur Liste bleibt nicht Element
func addSongsForPlaylist(songs: [Song], list: Playlist) {
try! realm!.write {
for song in songs {
list.RLMsongs.append(song)
}
}
}
Wo songs
nur ein Array der Songs ist, dass ich möchte hinzufügen. Die Songs in songs
sind nicht persistente Objekte (noch nicht im Bereich), aber list
ist bereits in Realm gespeichert.
Ich habe einige Fragen hier auf Stackoverflow gefunden, die scheinen, die gleiche Frage zu stellen, aber alle ihre Lösungen hatten damit zu tun, den Anhang in eine Schreibtransaktion zu wickeln, die ich bereits mache, wie Sie sehen können.
Ich habe auch versucht, die folgenden:
try! realm!.write {
list.RLMsongs.appendContentsOf(songs)
}
Was geschieht, ist, dass, wenn ich po list.RLMsongs
in der Konsole das neue Lied betreten gibt es und es sieht gut aus, aber wenn ich po list
seine RLMsongs
Eigenschaft eingeben fehlt das neue Lied. Wie können beide wahr sein? Es scheint sich selbst zu widersprechen und scheint etwas Grundlegendes zu sein, das mir an RealmSwift fehlt.
Es sieht so aus, als ob es die Liste im Speicher aktualisiert, aber nicht wirklich zu Realm verpflichtet. Daher dachte ich, dass vielleicht der Schreibblock nicht korrekt übergeben wurde und es in eine do catch
eingepackt hat, aber der Catch wird nie ausgeführt, so dass die Schreibtransaktion erfolgreich übergeben werden sollte.
EDIT:
Auch bemerkte ich, dass ich in der Lage bin, die Schreibtransaktion zu entfernen, und es gefällt mir nicht einen Fehler geben. Ich denke, das könnte ein Hinweis darauf sein, was hier vor sich geht. Ist es möglich, dass die Liste als nicht persistent angesehen wird und daher nicht richtig in Realm aktualisiert wird, obwohl der Inhalt der Liste (die Lieder) persistente Objekte sind?
Ehrfürchtig, das macht Sinn. Danke für die Antwort. Nun, warum taucht es überhaupt nicht im Reich auf? Ich benutze den Realm-Browser, um zu sehen, was in Realm ist und es verbindet den Song nicht mit der Playlist oder fügt den Song überhaupt zu Realm hinzu. –
Wenn Sie ein Beispielprojekt teilen, das das demonstriert, werde ich Ihnen gerne weiterhelfen. – jpsim
Ich bin nicht wirklich in der Lage, dies in einem anderen Projekt @ Jpsim zu replizieren, jedoch habe ich einige neue Informationen in Bezug auf die Schreib-Transaktion (letzten Absatz nach der Bearbeitung) gefunden. Hilft Ihnen dies dabei, das Problem zu beleuchten? –