无法将类型 'SharedSequence<DriverSharingStrategy, Data?>' 的值转换为预期的参数类型

Cannot convert value of type 'SharedSequence<DriverSharingStrategy, Data?>' to expected argument type

我想解决这个错误。 “无法将类型 'SharedSequence<DriverSharingStrategy, ControlProperty<String?>.Element>'(又名 'SharedSequence<DriverSharingStrategy, Optional>')的值转换为预期的参数类型 'Driver'(又名 'SharedSequence<DriverSharingStrategy, String>')” 和 “无法将类型 'SharedSequence<DriverSharingStrategy, Data?>' 的值转换为预期的参数类型 'Driver'(又名 'SharedSequence<DriverSharingStrategy, String>')”

但我不知道如何解决这个错误。我不认为有什么东西适合 viewModel,但我不知道它是什么。出错的地方是asDriver。 我正在使用 RxSwift 和 MVVM 模式。

   func bindViewModel() {
        
        let api = ProfileAPI()
        let input = ModifyProfileViewModel.input(nickName: nickNameTxtField.rx.text.asDriver(onErrorJustReturn: nil), userImage: image.asDriver(), doneTap: saveBtn.rx.tap.asSignal())
        let output = viewModel.transform(input)
        
        output.result.emit(onCompleted: { self.navigationController?.popViewController(animated: true)}
        ).disposed(by: rx.disposeBag)
    }

这是我的ViewController代码

class ModifyProfileViewModel: ViewModelType {
    
    let disposeBag = DisposeBag()
    
    struct input {
        let nickName: Driver<String>
        let userImage: Driver<String>
        let doneTap: Signal<Void>
    }
    
    struct output {
        let result: Signal<String>
        let isEnabled: Driver<Bool>
    }
    
    func transform(_ input: input) -> output {
        let api = ProfileAPI()
        let result = PublishSubject<String>()
        let info = Driver.combineLatest(input.nickName, input.userImage)
        let isEnabled = info.map { ![=13=].0.isEmpty }
        
        input.doneTap.withLatestFrom(info).asObservable().subscribe(onNext: { nickName, image in
            api.putModifyProfile().subscribe(onNext: { (response, statusCode) in
                switch statusCode {
                case .success:
                    result.onCompleted()
                case .noHere:
                    result.onNext("fail")
                default:
                    result.onNext("default")
                }
            }).disposed(by: self.disposeBag)
        }).disposed(by: disposeBag)
        
        return output(result: result.asSignal(onErrorJustReturn: ""), isEnabled: isEnabled.asDriver())
        
    }
}

这是我的 ViewModel 代码 有什么问题?

问题出在这里:nickNameTxtField.rx.text.asDriver(onErrorJustReturn: nil)Driver<String?> 类型,但您正试图将其分配给 Driver<String>.

要么 map 前者 .map { [=14=] ?? "" } 要么改变后者以接受 Optionals。