Компилятор swift не помог с этой ошибкой ...
Проблема в том, что при объявлении TestA
вы переопределяете имя String
, чтобы представить общий параметр для TestA
. Тогда будет ошибкой отправить Swift.String
в качестве параметра наблюдателю, ожидающему TestA.String
, который может быть любым.
Вы можете решить проблему, удалив неиспользуемый универсальный параметр (final class TestA: ObservableType { ...
) или передав значение, отправленное на onNext
, в качестве параметра для init, в зависимости от варианта использования.
final class TestA<Element>: ObservableType {
typealias E = Element
private let _observable: Observable<Element>
init(_ value: Element) {
_observable = Observable<Element>.create { observer -> Disposable in
print("mark 1")
observer.onNext(value)
observer.onCompleted()
return Disposables.create()
}
}
func subscribe<O>(_ observer: O) -> Disposable where O : ObserverType, O.E == E {
return _observable.subscribe(observer)
}
}