实例方法 'items' 要求 'listen' 符合 'Sequence'
Instance method 'items' requires that 'listen' conform to 'Sequence'
我想绑定tableViewCell的值。但是出现了和标题一样的错误。我以前从未见过这个错误,我想知道如何修复它。
func bindViewModel() {
let input = ListenViewModel.input(loadData: loadData.asSignal(onErrorJustReturn: ()))
let output = viewModel.transform(input)
output.loadApplyList.bind(to: tableView.rx.items) { tableView, index, element -> UITableViewCell in
guard let cell = self.tableView.dequeueReusableCell(withIdentifier: "ListeningTableViewCell") as? ListeningTableViewCell else {
return ListeningTableViewCell()}
cell.listeningData = element
}.disposed(by: disposeBag)
}
这是我的ViewController代码
class ListenViewModel: ViewModelType {
private let disposeBag = DisposeBag()
static var loadData = PublishRelay<listen>()
struct input {
let loadData: Signal<Void>
}
struct output {
// let isEnabled: Driver<Bool>
let result: Signal<String>
let loadApplyList: PublishRelay<listen>
}
func transform(_ input: input) -> output {
let api = ProfileAPI()
let result = PublishSubject<String>()
let loadApplyList = PublishRelay<listen>()
input.loadData.asObservable().subscribe(onNext: { [weak self] in
guard let self = self else { return }
api.getListenigList("admin123@gmail.com").subscribe(onNext: { (response, statuscode) in
switch statuscode {
case .ok:
if let response = response {
loadApplyList.accept(response)
}
case .noHere: result.onNext("fail")
default:
print("Default")
}
}).disposed(by: self.disposeBag)
}).disposed(by: disposeBag)
return output(result: result.asSignal(onErrorJustReturn: "실패"), loadApplyList: loadApplyList)
}
}
这是我的 ViewModel 代码。
如何修复此错误?
要绑定到 table 视图的 items
,您需要一系列事物,例如数组。该序列的每个元素都将显示在一个单元格中。
这里有一个 listen
对象 (output.loadApplyList
),它不是事物的序列。如果只想显示一个单元格,则应创建一个包含单个元素的序列。
有一种简单的方法可以创建仅包含一个元素的序列:CollectionOfOne
,因此您应该 map
您的 listen
对象。
output.loadApplyList.map(CollectionOfOne.init).bind(to: tableView.rx.items) { ... }
我想绑定tableViewCell的值。但是出现了和标题一样的错误。我以前从未见过这个错误,我想知道如何修复它。
func bindViewModel() {
let input = ListenViewModel.input(loadData: loadData.asSignal(onErrorJustReturn: ()))
let output = viewModel.transform(input)
output.loadApplyList.bind(to: tableView.rx.items) { tableView, index, element -> UITableViewCell in
guard let cell = self.tableView.dequeueReusableCell(withIdentifier: "ListeningTableViewCell") as? ListeningTableViewCell else {
return ListeningTableViewCell()}
cell.listeningData = element
}.disposed(by: disposeBag)
}
这是我的ViewController代码
class ListenViewModel: ViewModelType {
private let disposeBag = DisposeBag()
static var loadData = PublishRelay<listen>()
struct input {
let loadData: Signal<Void>
}
struct output {
// let isEnabled: Driver<Bool>
let result: Signal<String>
let loadApplyList: PublishRelay<listen>
}
func transform(_ input: input) -> output {
let api = ProfileAPI()
let result = PublishSubject<String>()
let loadApplyList = PublishRelay<listen>()
input.loadData.asObservable().subscribe(onNext: { [weak self] in
guard let self = self else { return }
api.getListenigList("admin123@gmail.com").subscribe(onNext: { (response, statuscode) in
switch statuscode {
case .ok:
if let response = response {
loadApplyList.accept(response)
}
case .noHere: result.onNext("fail")
default:
print("Default")
}
}).disposed(by: self.disposeBag)
}).disposed(by: disposeBag)
return output(result: result.asSignal(onErrorJustReturn: "실패"), loadApplyList: loadApplyList)
}
}
这是我的 ViewModel 代码。 如何修复此错误?
要绑定到 table 视图的 items
,您需要一系列事物,例如数组。该序列的每个元素都将显示在一个单元格中。
这里有一个 listen
对象 (output.loadApplyList
),它不是事物的序列。如果只想显示一个单元格,则应创建一个包含单个元素的序列。
有一种简单的方法可以创建仅包含一个元素的序列:CollectionOfOne
,因此您应该 map
您的 listen
对象。
output.loadApplyList.map(CollectionOfOne.init).bind(to: tableView.rx.items) { ... }