Ios “无可用数据”标签未显示在表视图中

Ios “无可用数据”标签未显示在表视图中,ios,swift,xcode,uitableview,Ios,Swift,Xcode,Uitableview,我有一个带有表视图的视图控制器。当有数据时,它将填充到表视图中。如果没有数据,则不必显示任何数据标签。我使用下面的代码。但它在这条线上崩溃了: func numberOfSections(in tableView: UITableView) -> Int { var numOfSection: NSInteger = 0 if (self.alldata?.count)! > 0 { self.tableView.backgroundView =

我有一个带有表视图的视图控制器。当有数据时,它将填充到表视图中。如果没有数据,则不必显示任何数据标签。我使用下面的代码。但它在这条线上崩溃了:

func numberOfSections(in tableView: UITableView) -> Int {

    var numOfSection: NSInteger = 0

    if (self.alldata?.count)! > 0 {

        self.tableView.backgroundView = nil
        numOfSection = 1

    } else {

        let rect = CGRect(x: 0,
                          y: 0,
                          width: self.tableView.bounds.size.width,
                          height: self.tableView.bounds.size.height)
        let noDataLabel: UILabel = UILabel(frame: rect)

        noDataLabel.text = "No Data Available"
        noDataLabel.textColor = UIColor(red: 22.0/255.0, green: 106.0/255.0, blue: 176.0/255.0, alpha: 1.0)
        noDataLabel.textAlignment = NSTextAlignment.center
        self.tableView.backgroundView = noDataLabel

    }
    return numOfSection

}
此行崩溃:
if(self.alldata?.count)!>0{
崩溃:
(lldb)
。我没有得到进一步的信息


提前感谢!

崩溃可能是因为
alldata
为零,而您试图在
(self.alldata?.count)!
中打开它。请尝试像这样修改它

if self.alldata.count != nil && (self.alldata?.count)! > 0 {
    self.tableView.backgroundView = nil
    numOfSection = 1
}

崩溃可能是因为
alldata
为零,而您试图在
(self.alldata?.count)!
中打开它。请尝试像这样修改它

if self.alldata.count != nil && (self.alldata?.count)! > 0 {
    self.tableView.backgroundView = nil
    numOfSection = 1
}

您正在强制展开数组,在没有数据时该数组为零。因此它正在崩溃

像这样检查

if let alldata = self.alldata, alldata.count > 0 {
      self.tableView.backgroundView = nil
      numOfSection = 1
}

您正在强制展开数组,在没有数据时该数组为零。因此它正在崩溃

像这样检查

if let alldata = self.alldata, alldata.count > 0 {
      self.tableView.backgroundView = nil
      numOfSection = 1
}
(self.alldata?.count)!>0
更改为
self.alldata?.count??0>0
。您正在强制展开
(self.alldata?.count)
的结果,因此如果
alldata
为零,则强制展开为零

另一方面,在诸如
numberOfSections
之类的函数中产生副作用是一种非常糟糕的做法。该函数应该只返回节数,而不做其他操作。将您的UI操作放在其他地方。

更改
(self.alldata?.count)!>0
self.alldata?.count??0>0
。您正在强制展开
(self.alldata?.count)
的结果,因此如果
alldata
为零,则强制展开为零


另一方面,在诸如
numberOfSections
之类的函数中产生副作用是一种非常糟糕的做法。该函数应该只返回节数,而不做任何其他操作。将您的UI操作放在其他地方。

检查
self.alldata?.count
此打印的内容您是否检查self.alldata?C中是否有可用的数据将if(self.alldata?.count)!>0此行更改为if(self.alldata?.count)?0>0,因为您正在强制展开可选值。检查
self.alldata?.count
此打印内容检查self.alldata中是否有可用数据?将if(self.alldata?.count)!>0此行更改为if(self.alldata?.count)?0>0,因为您正在强制展开可选值。