为什么我的应用程序在“indexPath.row”加载时崩溃?

时间:2015-08-21 22:48:53

标签: swift uitableview swift2 nsindexpath

我可能没有提供足够的信息来正确地提出这个问题,但我想知道为什么当我的代码达到indexPath.row的加载时我遇到了崩溃。

大部分代码被截断,这是我的 TableViewController.swift

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return minions.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    return minionCellAtIndexPath(indexPath)
}

    func minionCellAtIndexPath(indexPath:NSIndexPath) -> MinionCell {

        let minion = minions[indexPath.row]

        //Set the cell to be the custom, reusable, MinionCell
        let cell = tableView.dequeueReusableCellWithIdentifier(minionCellIdentifier, forIndexPath: indexPath) as! MinionCell

        if let name = minion.name {

            cell.nameLabel?.text = minion.name

        } else {

            cell.nameLabel?.text = "No data available."

        }

        return cell
    }

据我所知,let minion = minions[indexPath.row]发生了错误,错误发生在__Thread 1__上,语法显示:

  

函数签名特化Arg [0] =拥有保证

控制台输出似乎没有显示错误可能是什么,但我在质疑这是否与我从Swift 1.2转换到Swift 2有关。

2 个答案:

答案 0 :(得分:0)

问题应该是dequeueReusableCellWithIdentifier,确保在storyboard中正确设置。为你的单元格提供标识符名称的最佳位置是你的minioncell类。

答案 1 :(得分:0)

我最后通过改变来解决这个问题;

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { return minionCellAtIndexPath(indexPath) }

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

通过更改返回功能并将所有表格单元格配置添加到此功能,我发现在正确填充表格方面取得了圆满成功。