gpt4 book ai didi

swift - swift 数组中的 KVO 无法使用 Observable

转载 作者:行者123 更新时间:2023-11-30 13:47:57 25 4
gpt4 key购买 nike

我使用Alamofire从服务器请求数据,如下面的代码,我想观察数据源,我使用https://github.com/slazyk/Observable-Swift 。但 self.tableView?.reloadData() 永远不会被调用。

ViewModel.swift

var dataSource: [WishOrder] = [WishOrder]()
var observableDataSource: Observable<[WishOrder]> = Observable([WishOrder]())
Alamofire.request(Router.WishOrder(type: self.type, page: 1, pageAmount: self.pageAmount))
.validate()
.responseCollection { (response:Response<[WishOrder], NSError>) -> Void in
let result = response.result
switch result {
case .Success(let value):
self.dataSource = value as [WishOrder]
self.observableDataSource.value = self.dataSource
case .Failure(let error):
SVProgressHUD.showErrorWithStatus(error.localizedDescription)
}
}

ViewController.swift

override func viewDidLoad() {
super.viewDidLoad()

...

self.viewModel.observableDataSource.afterChange.add { (_) -> () in
print("afterChange")
self.tableView?.reloadData()
}
}

最佳答案

您将 self.dataSource 设置为在值更改后才能观察到。尝试将第 9 行和第 10 行向上调换。

关于swift - swift 数组中的 KVO 无法使用 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34690144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com