如果没有要加载的数据,或者正在提取数据等,我想在我的tableview背景上显示注释/标签。
我无法在这里看到我做错了什么。 Xcode正在显示警告&#34;永远不会被执行&#34;在这行代码上:if mostUpTodateNewsItemsFromRealm?.count < 1 {
这是方法。
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// create a lable ready to display
let statusLabel: UILabel = UILabel(frame: CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height))
statusLabel.textColor = globalTintColor
statusLabel.textAlignment = NSTextAlignment.Center
self.tableView.backgroundView = statusLabel
self.tableView.backgroundView?.backgroundColor = colourOfAllPickerBackgrounds
// 1) Check if we have tried to fetch news
if NSUserDefaults.standardUserDefaults().valueForKey("haveTriedToFetchNewsForThisChurch") as! Bool == false {
statusLabel.text = "Busy loading news..."
} else {
// If have tried to fetch news items = true
// 2) check church has channels
let numberOfChannelsSubscribedToIs = 0
if let upToDateSubsInfo = upToDateChannelAndSubsInfo {
let numberOfChannelsSubscribedToIs = 0
for subInfo in upToDateSubsInfo {
if subInfo.subscribed == true {
numberOfChannelsSubscribedToIs + 1
}
}
}
if numberOfChannelsSubscribedToIs < 1 {
// if no channels
// show messsage saying you aren't subscribed to any channels.
statusLabel.text = "Your church hasn't setup any news channels yet."
} else {
// 3) if we have tried to fetch news AND the church DOES have channels
// check if we have any news items to show
if mostUpTodateNewsItemsFromRealm?.count < 1 {
// If no news items
statusLabel.text = "Your church hasn't broadcast and news yet."
} else {
// if have tried to fetch AND church has channels AND there ARE news items
// remove the background image so doesn't show when items load.
self.tableView.backgroundView = nil
}
}
}
// in all circumstances there will be one section
return 1
}
答案 0 :(得分:1)
您的代码首先创建了一个常量:
let numberOfChannelsSubscribedToIs = 0
然后检查它是否小于1:
if numberOfChannelsSubscribedToIs < 1
因为它是常数,所以永远不会改变。这意味着将始终执行if子句。因此,永远不会执行else
子句。
首先,您需要创建这个常量变量:
var numberOfChannelsSubscribedToIs = 0
然后改变这个:
if subInfo.subscribed == true {
numberOfChannelsSubscribedToIs + 1
}
到此:
if subInfo.subscribed == true {
numberOfChannelsSubscribedToIs += 1
}
这样,numberOFChannelSubscribedToIs
可以是0以外的某个数字。可以执行else子句。
var
和let
非常不同!