【发布时间】:2018-05-11 08:09:42
【问题描述】:
我正在尝试将数据填充到表格视图内的单元格中。我创建了一个 selectedPlanData var,它被初始化为一个对象,其中包含数据。该对象具有诸如“名称”和“事件位置”之类的属性。在“cellForRowAt”内部时会出现问题。它不允许我将 [indexPath.row] 添加到我正在创建的单元格中,这反过来又不会正确填充单元格。
例如 - 我从第一个 cell.nameLbl.text 调用中删除了 indexPath.row - 反过来,表格视图中的每个名称标签都是相同的。这是一段代码
var chosenPlanData = ChosenPlan()
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "individualPlansCell") as? PlanitsHomeViewCell else { return UITableViewCell() }
cell.nameLbl.text = chosenPlanData.nameOfEvent[indexPath.row] // error Cannot assign value of type 'Character' to type 'String?'
cell.dateAndTimeLbl.text = chosenPlanData.eventStartsAt[indexPath.row] as? String // error 'subscript' is unavailable: cannot subscript String with an Int, see the documentation comment for discussion
cell.nameLbl.text = chosenPlanData.nameOfEvent // This works - but every single cell has the same nameLbl though
return cell
}
// Here is the call back where i initialize the value for chosenPlanData
let EventbriteTVC = segue.destination as! EventbriteTableView
EventbriteTVC.callbackChosePlan = { result in
DispatchQueue.main.async {
self.individualPlanitsTableView.reloadData()
}
self.chosenPlanData = result
}
导入基础 导入 UIKit
类选择计划{
var nameOfEvent : String = ""
var eventStartsAt : String = ""
var eventLocationIs : String = ""
var eventURL : String = ""
var imageForPlan : String?
convenience init( eventName: String, eventTime: String, eventLocation: String, eventImage: String){
self.init()
self.nameOfEvent = eventName
self.eventStartsAt = eventTime
self.eventLocationIs = eventLocation
//self.eventURL = eventLink
self.imageForPlan = eventImage
//eventLink: String,
}
}
【问题讨论】:
-
请向我们展示您的“ChosenPlan”课程。
-
您需要将您选择的PlanData.nameOfEvent[indexPath.row] 从字符转换为字符串
-
@Khushbu 刚刚用它更新了问题。谢谢
-
@ReinierMelian 它不会让我这样做.. 你到底是怎么建议我这样做的?
-
nameOfEvent是 String 而chosenPlanData.nameOfEvent[indexPath.row]你把它当成数组,它是如何工作的?