我正在尝试将数据从结构加载到表格视图单元格,我创建了一个带有三个标签的自定义单元格。我在视图控制器中有三个文本字段和一个添加按钮我希望当我填充这三个文本字段并按下添加它将这三个值存储在一个结构中并重新加载表视图的数据。结构在其他文件中。
以下是DataMaster.swift
中的结构代码struct jobData
{
var CompanyName:Array<String> = ["ram"]
var job:Array<String> = ["shyam"]
var desc:Array<String> = ["dfdf"]
}
addButton函数的代码
@IBAction func addButtonTapped(sender: AnyObject) {
var company = txtCompName.text
var job = txtJob.text
var description = txtDesc.text
data.CompanyName.append(company)
data.desc.append(description)
data.job.append(job)
self.jobTableView.reloadData()
print(data.CompanyName)
txtCompName.resignFirstResponder()
txtJob.resignFirstResponder()
txtDesc.resignFirstResponder()
}
问题在于此代码
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath:indexPath) as jobTableViewCell
cell.compLabel.text = data.CompanyName[indexPath.row]
cell.jobLabel.text = data.job[indexPath.row]
cell.descLabel.text = data.desc[indexPath.row]
return cell
}
当它到达此代码以加载表中的数据时,它崩溃了
Thread 1:EXC_BREAKPOINT(code=EXC_I386_BPT,subcode=0x0
)
答案 0 :(得分:2)
以下是代码。
struct jobData
{
var CompanyName:String!
var job:String!
var desc:String!
}
将数组作为var datas = [jobData]()
现在处于行动方法
@IBAction func addButtonTapped(sender: AnyObject) {
var company = txtCompName.text
var job = txtJob.text
var description = txtDesc.text
let dataObject = jobData(company: company, job: job, desc: description)
datas.append(dataObject)
self.jobTableView.reloadData()
txtCompName.resignFirstResponder()
txtJob.resignFirstResponder()
txtDesc.resignFirstResponder()
}
现在在cellForRowAtIndex方法
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath:indexPath) as! jobTableViewCell
let data = datas[indexPath.row]
if let companyName = data.CompanyName {
cell.compLabel.text = companyName
}
if let job = data.job {
cell.jobLabel.text = job
}
if let descr = data.desc {
cell.descLabel.text = descr
}
return cell
}
numberofRowsInSection方法中的返回datas.count
检查data.CompanyName为空的原因,并确保所有文本字段都有文本。