2017-04-10 5 views
0

Ich habe eine Frage über die Bindung: Ich habe ein Array von Objekten meiner benutzerdefinierten Klasse: Array. Jedes Objekt kann in bg aktualisiert werden (ändern Sie seinen Eigenschaftswert). Auch habe ich Controller getrennt, die ein Objekt aus der Liste als Variable übernehmen und speichern (Objekt immer noch gleich, also in Liste wird es auch aktualisiert)RxSwift - Bindung der Klasse Eigenschaft

Gibt es eine Möglichkeit, alle object.property zu binden -> UILabels auf Controller in Art und Weise, wenn Eigenschaft ändert sich automatisch Etikett Update aufrufen?

Antwort

1

Natürlich gibt es mehrere Möglichkeiten, wie es geht, aber von Ihrer Beschreibung würde ich eine Art von Thema verwenden (weil Sie sagten, es wird Änderungen im Hintergrund, so dass Sie wahrscheinlich heiß beobachtbar sein müssen) .... Für Beispiel Variable oder PublishSubject. So können Sie Kiste

let myArrayStream: Variable<[MyObject]> = Variable([]) 

Sie diese Variable als Abhängigkeit passieren können, wo immer Sie wollen, auf der einen Seite Sie ihn abonnieren können, auf der anderen Seite können Sie aktualisieren, es Wert ist.

+0

Und wenn ich ein Objekt von Array abonnieren muss, sollte ich 'Variable ' verwenden? Bei der Übergabe eines Elements aus dem Array, etwa so: 'vcProperty: Variable = array.value [index]'? Also, wenn ich vcProperty.prop ändern werde, werden beide Abonnenten (für vcProperty und Array) über dieses Ereignis benachrichtigt, richtig? – Viktor

+0

ja das wird funktionieren – beretis

Verwandte Themen