gpt4 book ai didi

Swift Promises - 重新加载数据方法未绑定(bind)数据

转载 作者:行者123 更新时间:2023-11-30 14:08:58 25 4
gpt4 key购买 nike

我正在使用 Promise 通过 JSON 的某些方法检索信息。我正在用函数填充信息:

我正在尝试在 TableView 中设置这些记录:

@IBOutlet weak var usersTableView: UITableView!

var dataSource: [UserResponse]? {
didSet {
self.usersTableView.reloadData()
}
}

override func viewDidLoad() {
super.viewDidLoad()
loadFriends()
// Do any additional setup after loading the view.
}

func loadFriends() {
//UserService.getFriends()
let (request, promise) = UserService.getFriends()

promise.then { user in
self.dataSource = user
}.catch{
error in
SCLAlertView().showError("Error", subTitle: error.localizedDescription)
}

}

但返回错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

如何修复此错误?

最佳答案

您的usersTableView是隐式展开的可选(UITableView!)。当您调用 dataSource setter 时,didSet 属性观察器会尝试调用 usersTableView 上的 reloadData(),但它是 nil,因此您会崩溃 - 您无法在 nil 上调用方法。

您似乎尚未将 socket 连接到 Storyboard 中的 usersTableView 属性。或者,您可以在代码中的其他位置将其设置为nil。如果加载 View Controller 时 usersTableView 不是 View 层次结构的一部分,则这种情况可能会自动发生,因为它是一个 weak 变量,但我希望您已添加它作为 Storyboard中的 subview ?

关于Swift Promises - 重新加载数据方法未绑定(bind)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31979064/

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