Die meiste Zeit, wenn Sie Kontrolle über die Unterstützung Variable haben, möchten Sie Variable
zu rx_observe
verwenden.
class ViewController: UIViewController {
var myArray : Variable<NSArray>!
}
Das erste Mal, wenn Sie myArray verwenden werden, würden Sie es wie asign so
myArray = Variable(["a"])
Dann, wenn Sie seinen Wert
myArray.value = ["b"]
ändern möchten und Sie können leicht beobachten seine Änderungen unter Verwendung von
myArray.asObservable().subscribeNext { value in
// ...
}
Wenn Sie wirklich rx_observe
verwenden möchten (vielleicht, weil die Variable an anderer Stelle in Ihrem Programm verwendet wird und Sie die API Ihres View-Controllers nicht ändern möchten), müssen Sie myArray
als dynamic
deklarieren (eine weitere Voraussetzung ist dass die Hosting-Klasse ein Kind von NSObject
ist, erfüllt hier UIViewController
diese Anforderung). KVO ist nicht standardmäßig in swift implementiert, und die Verwendung von dynamic sichert den Zugriff mithilfe der Ziel-c-Laufzeit, wobei KVO-Ereignisse behandelt werden.
class ViewController: UIViewController {
dynamic var myArray: NSArray!
}
Dokumentation hierfür gefunden werden here