observe
は、オプションの要素のObservable
を返します。Observable<[CLLocationCoordinate2D]?>
それは非常に良好で、エラーではありません。もしそれが何のタイプそれあなたが戻ってきて、それが期待どおりに見ていたと言っていた場合は、より有益でした。
これは、変数を作成して代わりにそれを返すことで確認できました。あなたはどのタイプa
(Observable<[CLLocationCoordinate2D]?>
)を見ることができただろうし、また、より良いエラーメッセージを得ているでしょう
var ob: Observable<[CLLocationCoordinate2D]> {
let a = self.rx.observe(Array<CLLocationCoordinate2D>.self, "locations")
return a
}
:その間違いを訂正する、だから、
Cannot convert return expression of type 'Observable<[CLLocationCoordinate2D]?>' (aka 'Observable<Optional<Array<CLLocationCoordinate2D>>>') to return type 'Observable<[CLLocationCoordinate2D]>' (aka 'Observable<Array<CLLocationCoordinate2D>>')
を、あなたのコードは次のようになります。これは:
var ob: Observable<[CLLocationCoordinate2D]?> {
return self.rx.observe(Array.self, "locations")
}
タイプ推論に頼るのではなく、代わりに配列の要素タイプを明示することをお勧めします。スウィフトは十分な時間があります:
var ob: Observable<[CLLocationCoordinate2D]?> {
return self.rx.observe(Array<CLLocationCoordinate2D>.self, "locations")
}