Ios 如何从结构加载UITableView单元格中的数据

Ios 如何从结构加载UITableView单元格中的数据,ios,uitableview,swift,struct,Ios,Uitableview,Swift,Struct,我试图将数据从结构加载到表视图单元,我创建了一个自定义单元,其中有三个标签。我在视图控制器中有三个文本字段和一个add按钮,我希望当我填充这三个文本字段并按add时,它会将这三个值存储在一个结构中,并重新加载表视图的数据。结构位于其他文件中 下面是DataMaster.swift中的结构代码 struct jobData { var CompanyName:Array<String> = ["ram"] var job:Array<String> = ["

我试图将数据从结构加载到表视图单元,我创建了一个自定义单元,其中有三个标签。我在视图控制器中有三个文本字段和一个add按钮,我希望当我填充这三个文本字段并按add时,它会将这三个值存储在一个结构中,并重新加载表视图的数据。结构位于其他文件中

下面是DataMaster.swift中的结构代码

struct jobData
{
    var CompanyName:Array<String> = ["ram"]
    var job:Array<String> = ["shyam"]
    var desc:Array<String> = ["dfdf"]

}
问题出在这段代码中

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
    }
当它到达此代码以加载表中的数据时,它崩溃
线程1:EXC_断点(code=EXC_I386_BPT,子代码=0x0

下面是代码

struct jobData
{
    var CompanyName:String!
    var job:String!
    var desc:String!
}
将数组设为
var data=[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()
}
现在使用CellForRowatinex方法

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为什么为空,并确保所有文本字段都包含文本。

好问题,我来看看你是否创建了结构数组?Ashish kakkad爵士看看代码,我在结构中使用了数组为什么你在结构中创建属性作为数组。相反,您可以创建结构数组。这很简单。在numberOfRowsInSection中返回什么值?。它应该是数据结构中的一个数组的计数,例如,应用更改(如上所述)后,应用程序崩溃并显示:线程1:EXC_断点(code=EXC_I386_BPT,subcode=0x0)崩溃的确切位置?当我点击按钮时,应用程序崩溃移动三行txtCompName.resignFirstResponder()txtJob.resignFirstResponder()txtDesc.resignFirstResponder()并放置断点,检查其崩溃的确切位置,然后通知我。应用程序崩溃的确切时间:cell.splabbel.text=data.CompanyName
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
}