自定义 TableView + 段控制器代码中的格式和错误
Posted
技术标签:
【中文标题】自定义 TableView + 段控制器代码中的格式和错误【英文标题】:Format and Error in my code for a Custom TableView + Segment Controller 【发布时间】:2017-07-30 23:20:41 【问题描述】:所以我创建了一个 View Controller,它有两个 TableView 和一个 Segment Control。下面的代码给了我两个错误。
-
(return serviceImage.count) 给我一个错误,说返回后的代码将永远不会被执行。
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
【问题讨论】:
你想用 3 个回报来完成什么? 【参考方案1】:return serviceName.count
return serviceImage.count // Line will be ignored
return serviceNumber.count // Line will be ignored
[...] 返回后的代码永远不会被执行。
这只是一个警告,因为只有 serviceName
数组会返回它的计数。
cell.myReviewPic!.image = UIImage(named: reviewPhoto[indexPath.row]))
在展开可选值时意外发现 nil
myReviewPic
为 nil,您正在尝试使用 !
强制解包它。可能没有通过 IBOutlet 连接到您的 ServiceCell nib/xib。
【讨论】:
以上是关于自定义 TableView + 段控制器代码中的格式和错误的主要内容,如果未能解决你的问题,请参考以下文章
当点击自定义 TableView 单元格中的 UITextField 时转到新视图
如何使用 plist 中的数据阻止或禁用 Tableview 中的自定义单元格?