RxSwift toArray
у меня не работает при использовании дженериков:
struct SaveModelsCommand<M> where M:Model {
let models:[M]
func create() -> Observable<[M]> {
let cloudKitRecords:[CKRecord] = models.map({
// convert models to CKRecords
...
})
return SaveRecordsCommand(cloudKitRecords)
.createObservable()
.flatMap({ savedRecords in
// convert array to multiple emissions so we can iterate it
return Observable.from(savedRecords)
})
.flatMap({ (record:CKRecord) -> M in
// convert CKRecord back to a model (aka M)
... create model (e.g. Member) ...
return model
})
// convert back to a single emission (array)
.toArray() // <<<<< ERROR
}
}
Вот ошибка:
Невозможно преобразовать возвращаемое выражение типа 'Observable ‹[M.E]>' (также известного как 'Observable>') в возвращаемое выражение 'Observable‹ [M]>' (также известное как 'Observable>')
Единственная разница, которую я вижу в возвращаемом типе, - это M.E
против M
.
Любые идеи?