Я пытаюсь подключить данные к UITableView. У меня есть скачать форму проекта здесь, и я с помощью кода, где данные прикрепленную к Tableview: http://yannickloriot.com/2016/01/make-uitableview-reactive-with-rxswift/:RxCocoa дополнительный аргумент при вызове
Во-первых, я создал следующую переменную:
let currentQuestion: Variable<Taxi?> = Variable(nil)
Затем я пытаюсь сделать следующее:
currentQuestion
.asObservable()
.bindTo(tableView.rx_itemsWithCellIdentifier("ChoiceCell", cellType: ChoiceCell.self)) { (row, element, cell) in
cell.choiceModel = element
}
.addDisposableTo(disposeBag)
Но я получаю следующее предупреждение: «Дополнительный аргумент в вызове» на линии .bindTo
. Я попытался добавить новую ячейку и получить тот же результат. Не уверен, что это актуально, но я зарегистрировал ячейку.
Я прочитал здесь, что вы можете получить это предупреждение, если типы аргументов не совпадают: Swift - Extra Argument in call. Однако похоже, что аргументы хорошо совпадают.
Я новичок в Rx и был надежда, что кто-то может помочь мне понять, что здесь может быть неправильным. Благодарю.
======
Редактировать
Вот мой новый код. Я пытался в одиночку rx_itemsWithCellIdentifier("ChoiceCell")
и rx_itemsWithCellIdentifier("ChoiceCell", cellType: ChoiceCell.self)
:
let currentQuestion = Variable<[Taxi]>(taxis)
currentQuestion.asObservable()
.bindTo(tableView.rx_itemsWithCellIdentifier("ChoiceCell")) {(row, element, cell) in
cell.choiceModel = element
}.addDisposableTo(disposeBag)
Где я использовал (такси), это массив элементов такси. Смотрите рисунок ниже:
Кроме того, как только я назвал .asObservable(), я следующее:
мне удалось напечатать это путем удаления линии .bindTo
. Если я добавлю эту строку назад, я получаю ту же ошибку, что и раньше.
ВАЖНО: Я играл с базой кода из статьи I, связанной с ранее. Если удалить из ChoiceCell я могу повторить ту же ошибку:
// var choiceModel: ChoiceModel? {
// didSet {
// layoutCell()
// }
// }
Хорошо, пожалуйста, пометьте ответ как правильный, если это возможно –
Я правильно пометил свой ответ, поскольку это было исправление отображаемой ошибки. Ваш ответ был большой помощью в том, чтобы попасть в такое положение, где я мог бы найти покупку, поэтому я проголосовал за нее. Надеюсь, это имеет смысл и еще раз спасибо :-). – pls