gpt4 book ai didi

ios - tableView 重新加载时崩溃

转载 作者:行者123 更新时间:2023-11-30 11:18:16 24 4
gpt4 key购买 nike

我有一个类别 collectionView,每个单元格上都有类别 labels,当我单击任何单元格时,label 值将使用 prepareForSegue 传递到第二个 viewController 的类别变量,并且当设置类别变量的值时,didSet 调用 loadData() 函数。

func loadData()
{

let companyData = Database.database().reference().child("CompanyReviews")
companyData.queryOrdered(byChild: "Category").queryEqual(toValue: category).observe(.value, with: {(snapshot) in
for child in snapshot.children
{
let companyObject = Companies()
let dataSnapshot = child as! DataSnapshot

companyObject.companyName = dataSnapshot.childSnapshot(forPath: "CompanyName").value as! String
companyObject.owner = dataSnapshot.childSnapshot(forPath: "CompanyOwner").value as! String
companyObject.contactNumber = dataSnapshot.childSnapshot(forPath: "ContactNumber").value as! String
companyObject.location = dataSnapshot.childSnapshot(forPath: "location").value as! String
companyObject.gstNumber = dataSnapshot.childSnapshot(forPath: "GSTNumber").value as! String
self.companyArray.append(companyObject)
}
if self.companyArray.count > 0
{
self.CompanyTable.reloadData()
print(self.companyArray.count)
}
else
{
self.noData.text = "No Data Available"
self.CompanyTable.backgroundView = self.noData
}
})
}

如果该类别下存在一些数据,tableView 会加载该数据,否则 tableViews backgroundView 将显示“无可用数据”。该应用程序运行完美。现在有一个类别下没有数据,两个类别下有数据。问题是,选择一个类别然后返回并选择其他类别后,应用程序崩溃在 self.CompanyTable.reloadData() 处出现错误:

Unexpectedly found nil while unwrapping the optional.

我真的不知道为什么会发生这种情况,我在谷歌上搜索,甚至在 stackOverflow 上搜索了一些答案,但没有任何线索。我是 swift 编程的初学者,所以请帮助我解决这个问题。

最佳答案

when the value of category variable gets set the didSet calls loadData()

去掉didSet是崩溃的原因,需要在viewDidLoad中调用loadData(),原因是所有VC 的导出为零,直到 VC 加载,当控制位于 prepareForSegue 内部时,情况并非如此,如果网络速度不快,您可能会很幸运,但您不应该让您的应用处于可能性

同时将 observe 替换为 observeSingleEvent,因为前者是观察者,调用服务器中的每个更改

关于ios - tableView 重新加载时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51558426/

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