因此,我创建了一个具有两个 TableView 和一个 Segment Control 的 View Controller 。下面的代码给了我两个错误。
- (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/