Ich bin neu in der schnellen Sprache und mein Problem ist, wie man Observable / Beobachtermuster in swift verwendet.
Ich möchte, dass mein Array in meiner SocketManager-Klasse beobachtbar ist, damit es von meiner UIViewController-Klasse beobachtet werden kann. Ich habe die Observable-Klasse von Andrew J Wagner verwendet, die ich von diesem Link erhalten habe:
Ich habe das Array:
var marketIndexList: Array & lt; MarketIndex & gt; = []
, die ihre Daten von einem Server erhält. Diese Liste wird jedes Mal aktualisiert, wenn neue Daten vom Server empfangen werden. Nachdem ich die Werte von meinem Array vom Server bekommen habe, möchte ich es vom Typ Observable Klasse machen, die durch den obigen Link implementiert wird:
marketIndexList = Beobachtbar (marketIndexList)
Aber ich habe diesen Fehler:
'MarketIndex' ist nicht identisch mit 'AnyObject'
MarketIndex ist eine Klasse vom Typ NSObject, die einige Eigenschaften vom Typ String hat.
Dies ist die Observable-Klasse, die ich verwendet habe:
%Vor%Kann mir jemand sagen, was das Problem ist?
Kennt jemand auch eine Möglichkeit, ein Array von Objekten in swift zu beobachten?
Ich würde jede Hilfe zu schätzen wissen.
Vielen Dank im Voraus.
Der Fehler liegt darin, dass marketIndexList
als Array<MarketIndex>
definiert ist, Sie aber Observable
instance zugewiesen haben. Vielleicht wollten Sie so etwas tun:
Übrigens können Sie auch Objective-C KVO von Swift verwenden. Markieren Sie einfach die Eigenschaft als dynamic
und stellen Sie sicher, dass die Klasse NSObject erbt, um die Eigenschaft beobachtbar zu machen. Zum Beispiel:
Dieser Beitrag ist gut zu lesen für KVO in Swift zusätzlich zu dem, was Sie angesprochen haben. Ссылка
Tags und Links arrays swift nsobject observable observers