Dies ist, was die Dokumentation über den Zugriff auf einen Bereich mit GCD zu sagen hat: „Sie sollten einen expliziten Autofreigabepool verwenden, wenn einen Realm von einer Absende-Warteschlange Zugriff auf“Was ist der richtige Weg Realm in einem Autorespulepool zu benutzen?
Ich habe diese Praxis in meiner app verwendet, aber ich in meiner Konsole die folgende Meldung plötzlich sehe: „RLMRealm Instanz wurde während einer Schreibtransaktion freigegeben“.
Es wird kein Fehler ausgegeben, es wird lediglich still auf die Konsole gedruckt. Nichts wird in die Datenbank geschrieben.
Ich fand dieses Problem auf github, die sehr ähnlich scheint.
Meine Frage ist jetzt: Welche Praxis sollte ich verwenden? Der in der Realm-Dokumentation verwendete oder die im GitHub-Problem gefundene Antwort?
Danke für jede Klarstellung.
'nichts wird so schlimm passieren; nur die Größe der Realm-Datei auf der Festplatte erhöht sich. Wenn es zu lange dauert, kann Ihre Realm-Größe jedoch drastisch steigen (abhängig von der Anzahl der gleichzeitigen Threads). – EpicPandaForce
Das trifft hier nicht zu. In diesem Fall erhöhen lang laufende Transaktionen die Größe des Transaktionsprotokolls. Nicht herunterladende Realm-Instanzen haben die Größe nie "drastisch" erhöht, aber sie haben dazu geführt, dass sie mehr als nötig gewachsen sind. In jedem Fall ist uns das Transaktionsprotokoll bekannt und wir arbeiten an einer Lösung: https://github.com/realm/realm-core/issues/2343 :) – TiM