swift - 自定义 TableView + 段 Controller 代码中的格式和错误

标签 swift tableview uisegmentedcontrol

因此,我创建了一个具有两个 TableView 和一个 Segment Control 的 View Controller 。下面的代码给了我两个错误。

  1. (return serviceImage.count) 给我一个错误,指出 return 后的代码永远不会被执行。

2.(cell.myReviewPic!.image = UIImage(named: reviewPhoto[indexPath.row])) 在展开可选值时返回意外发现 nil 的错误

我的代码

@IBAction func segmentedControlChanged(_ sender: Any) {
    myTableServiceU.reloadData()
    myTableService.reloadData()
}


@IBOutlet weak var segmentControl: UISegmentedControl!
@IBOutlet weak var myTableServiceU: UITableView!
@IBOutlet weak var myTableService: UITableView!

let serviceName: [String] = ["Whataburger", "Red Lobster", "Pizzahut", "McDonalds", "Burger King", "Sushi Garden", "In & Out Burger", "Canes", "Jimmy Johns"]

let serviceImage: [String] = ["place1,", "place2", "plac3", "place4", "place5", "place6", "place7", "place8", "place9"]

let serviceNumber: [String] = ["38", "35", "29", "25", "23", "19", "17", "12", "11"]

let brandPhoto: [String] = ["TK", "MC", "BA"]


override func viewDidLoad() {
    super.viewDidLoad()

    myTableService.dataSource = self
    myTableService.delegate = self

}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    switch(segmentControl.selectedSegmentIndex)
    {
    case 0:
        return  brandPhoto.count
    case 1:
        return  serviceName.count
        return  serviceImage.count
        return  serviceNumber.count
        break
    default:
        break
    }

    return 0
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! ServiceCell


    switch(segmentControl.selectedSegmentIndex)
    {
    case 0:
        cell.myReviewPic.image = UIImage(named: brandPhoto[indexPath.row])
        break

    case 1:
        cell.myServiceName.text = serviceName[indexPath.row]
        cell.myServiceImage.image = UIImage(named: serviceImage[indexPath.row])
        cell.myServiceNumber.text = serviceNumber[indexPath.row]
        break

    default:
        break
    }

    return cell
}

}

最佳答案

return  serviceName.count
return  serviceImage.count // Line will be ignored
return  serviceNumber.count // Line will be ignored

[...] code after return will never be executed.

这只是一个警告,因为只有 serviceName 数组会返回其计数。


cell.myReviewPic!.image = UIImage(named: reviewPhoto[indexPath.row]))

unexpectedly found nil while unwrapping an optional value

myReviewPic 为零,您正尝试使用 ! 强制解开它。可能未通过 IBOutlet 连接到您的 ServiceCell nib/xib。

关于swift - 自定义 TableView + 段 Controller 代码中的格式和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405635/

相关文章:

ios - 向带有圆角的 View 添加阴影

Swift:用空格分隔单词的每个字符

java - JavaFX 中的 TableView 和 Spinner

iphone - UIToolbar 内的 UISegmentedControl 的横向高度确实错误

ios - 如何在SimCity 5中实现建筑物移动时摇摆的物理效果?

swift - 将*通用*协议(protocol)桥接到 Objective-C 的解决方法?

没有(故意)实现线程的 JavaFX ConcurrentModificationException

使用 SDWebImage 4.3.0 快速 tableview 加载图像

ios - UITableView、UITableViewController Detail View 和 UISegmentedControl 怎么样?

ios - 自定义 UISegmentedControl 的颜色