Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法使用RxSwift变量asObservable()设置绑定(到:UITableView)_Ios_Swift_Uitableview_Rxdatasources - Fatal编程技术网

Ios 无法使用RxSwift变量asObservable()设置绑定(到:UITableView)

Ios 无法使用RxSwift变量asObservable()设置绑定(到:UITableView),ios,swift,uitableview,rxdatasources,Ios,Swift,Uitableview,Rxdatasources,我正在尝试绑定(到:)collectionView,但tableView也不起作用。我有一个viewModel,其中是我的变量,我希望在值更改时使用我的tableView订阅 viewModel.theVariable .asObservable() .bind(to: tableView.rx.items(cellIdentifier: "Cell", cellType: UITableViewCell.self)){ (row, ite

我正在尝试绑定(到:)collectionView,但tableView也不起作用。我有一个viewModel,其中是我的变量,我希望在值更改时使用我的tableView订阅

viewModel.theVariable
        .asObservable()
        .bind(to: tableView.rx.items(cellIdentifier: "Cell", cellType: UITableViewCell.self)){
            (row, item, cell) in
            cell.textLabel?.text = item
        }
        .addDisposableTo(disposeBag)
XCode告诉我,
类型“inout UITableView”不符合协议“ReactiveCompatible”
,因为它适用于任何UIView

我试过用它的just()来观察,这种方法似乎是正确的。问题是我需要有一个变量,我在viewModel中设置了一个值,在视图中我需要观察这个变化。不确定Observable是否适用于此方法


关键是,即使使用变量,这也应该有效?是虫子吗?Im使用Swift 3.2

以下是一个工作代码示例:

    var dataSource : PublishSubject<[String]> = PublishSubject()

    dataSource.asObservable().bind(to: self.mProductsCollectionView.rx.items) { (collectionView, row, element ) in
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "reuseIdentifier", for: IndexPath(row : row, section : 0))
        //customize cell
        return cell

    }.addDisposableTo(bag)

    publish.onNext(["blah", "blah", "blah"])
var数据源:PublishSubject=PublishSubject()
dataSource.asObservable().bind(到:self.mproductscolectionview.rx.items){(collectionView,row,element)在
let cell=collectionView.dequeueReusableCell(带reuseIdentifier:“reuseIdentifier”,for:IndexPath(行:行,节:0))
//自定义单元格
返回单元
}.addDisposableTo(袋子)
publish.onNext([“诸如此类”,“诸如此类”,“诸如此类])

以下是一个工作代码示例:

    var dataSource : PublishSubject<[String]> = PublishSubject()

    dataSource.asObservable().bind(to: self.mProductsCollectionView.rx.items) { (collectionView, row, element ) in
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "reuseIdentifier", for: IndexPath(row : row, section : 0))
        //customize cell
        return cell

    }.addDisposableTo(bag)

    publish.onNext(["blah", "blah", "blah"])
var数据源:PublishSubject=PublishSubject()
dataSource.asObservable().bind(到:self.mproductscolectionview.rx.items){(collectionView,row,element)在
let cell=collectionView.dequeueReusableCell(带reuseIdentifier:“reuseIdentifier”,for:IndexPath(行:行,节:0))
//自定义单元格
返回单元
}.addDisposableTo(袋子)
publish.onNext([“诸如此类”,“诸如此类”,“诸如此类])

以下是Swift 3中的工作代码

 var countries = Variable([Country]())
 countries.asObservable()
  .bind(to: tblRx.rx.items(cellIdentifier: "RxCell", cellType: RxCell.self)) { (row, element, cell) in
            //customise cell here
        }
     .disposed(by: disposeBag)

这是Swift 3中的工作代码

 var countries = Variable([Country]())
 countries.asObservable()
  .bind(to: tblRx.rx.items(cellIdentifier: "RxCell", cellType: RxCell.self)) { (row, element, cell) in
            //customise cell here
        }
     .disposed(by: disposeBag)

你的变量是什么类型的?我创建的自定义模型…自定义数组对吗?没错,我有一个包含数组,Int和Int的模型。这就是变量所观察到的我正在制作一个游乐场示例变量的类型是什么?我创建的自定义模型…自定义数组对吗?没错,我有一个模型,其中包含数组,Int和Int。这就是变量所观察到的我正在做一个游乐场的例子我今天晚些时候会尝试这个,如果这是正确的,赏金是你的:)有机会尝试吗?好的,所以问题似乎是我在使用我自己的模型,其中有一个数组。看来我需要马上使用阵列。因此,我将数组映射为bind(to:)函数的输入,它似乎可以工作。也许它甚至可以与变量一起工作。谢谢,赏金是你的…我今天晚些时候会试试这个,如果这是正确的,赏金是你的:)有机会试试吗?好的,所以问题似乎是我在使用我自己的模型,其中有一个数组。看来我需要马上使用阵列。因此,我将数组映射为bind(to:)函数的输入,它似乎可以工作。也许它甚至可以与变量一起工作。谢谢你,赏金是你的。。。