2016-06-28 6 views
2

Im Rahmen eines zweistufigen Analyseprozesses müssen Daten vor dem zweiten Schritt in den persistenten Speicher geschrieben werden. Wenn ich das asynchron über Fina-Grain-Benachrichtigungen mache, ist das ein bisschen chaotisch. Es wäre toll, zwei in einer Linie in einer Funktion zu tun.Wie mache ich einen Schreibvorgang in Realm (iOS) synchron?

Ist es möglich, ein Realm() zu schreiben? {} Operations synchron? Der zweite Schritt muss diese Daten zurücklesen.

Antwort

4

Realm.write(_:)ist synchron.

+0

Das war einfach. Ich habe das nur angenommen, weil es ein Block war, der es nicht ist. Danke. –

+1

Eine Möglichkeit zu sagen, dass es synchron zur Dokumentation ist, ist das '@ noescape' Attribut. Ein Verschlussparameter mit diesem Attribut muss innerhalb der Funktion verwendet werden und kann nicht die Lebenszeit des Aufrufs selbst umgehen. Siehe [Nonescaping Closures] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html#//apple_ref/doc/uid/TP40014097-CH11-ID546) in der Swift-Dokumentation für mehr Informationen. – bdash

+0

Es ist * nicht * synchron. Wirklich, zumindest. Wenn Sie einen Wert schreiben und dann mithilfe von realm.objects() nach dem Objekt aus einem anderen Thread suchen, wird der Wert nicht immer aktualisiert. – tempire