observe
wird eine Observable
ein optionales Element zurück: Observable<[CLLocationCoordinate2D]?>
Es ist kein sehr guter Fehler. Es wäre hilfreicher gewesen, wenn es gesagt hätte, was für ein Typ war, als er sah, dass du versuchst zurückzukehren, anstatt genau das, was er erwartet hatte.
Eine Möglichkeit, die Sie gesehen haben könnten, besteht darin, eine Variable zu erstellen und diese stattdessen zurückzugeben.
var ob: Observable<[CLLocationCoordinate2D]> {
let a = self.rx.observe(Array<CLLocationCoordinate2D>.self, "locations")
return a
}
Sie wäre in der Lage zu sehen, welche Art a
ist (Observable<[CLLocationCoordinate2D]?>
) und hätte auch eine bessere Fehlermeldung bekommen:
Cannot convert return expression of type 'Observable<[CLLocationCoordinate2D]?>' (aka 'Observable<Optional<Array<CLLocationCoordinate2D>>>') to return type 'Observable<[CLLocationCoordinate2D]>' (aka 'Observable<Array<CLLocationCoordinate2D>>')
Also, diesen Fehler zu korrigieren, sollte Ihr Code aussehen dies:
var ob: Observable<[CLLocationCoordinate2D]?> {
return self.rx.observe(Array.self, "locations")
}
Obwohl ich würde vorschlagen, Sie verlassen sich nicht auf Typinferenz und stattdessen sein explizit über den Elementtyp des Arrays. Swift hat eine harte Zeit, wie es ist:
var ob: Observable<[CLLocationCoordinate2D]?> {
return self.rx.observe(Array<CLLocationCoordinate2D>.self, "locations")
}