【发布时间】:2020-11-23 13:16:16
【问题描述】:
我有一个模型用户并且在那个模型中
static func getUsers() -> Single<[Users]> {
let path = API.Path.users.details
let params: [String: Any] = [
"utcOffset": TimeZone.current.utcOffset
]
return API.requestMany(path: path, method: .get, parameters: params)
}
我这样声明
let sus = [Users]()
在我的 cellForRowAt 我有这个
Users
.getUsers()
.do(onError: { [weak self] error in
print(error.localizedDescription)
})
.do(onSuccess: { [weak self] userNames in
print(userNames)
cell.name.text = userNames[indexPath.row].name
})
.subscribe()
.disposed(by: rx.disposeBag)
没有调用该代码,因此我的 tableview 是空的,但是当我尝试将其放入 ViewDidLoad 时,它被调用并触发了我的打印语句 print(userNames)
【问题讨论】:
-
我正在正确映射数组,我可以在控制台中看到它。
-
不要在
cellForRow内调用getUsers()等。相反,在显示您的表格之前,请确保您的数据已准备就绪。准备好数据后,请致电tableView.reloadData()。 -
@koen 我应该在哪里调用 getUsers() 我正在练习 MVVM。
-
可能在
viewDidLoad()内。 -
@koen 我试过了,但还是没有出现。是否可以在 tableviewCell 内部调用?
标签: arrays json swift uitableview rx-swift