iOS - 分配自定义UITableViewCell抛出NSMallocException

时间:2014-06-08 04:00:14

标签: ios uitableview malloc swift

我正在使用Swift中的iOS应用程序,我知道它目前处于测试阶段,但到目前为止,我已经能够解决所有这些小问题,直到遇到这个问题。我有一个表视图,它将由类FavoriteRowCell的自定义表格单元格填充。这是课程(我已经简化了,希望通过消除过程来解决它):

class FavoriteRowCell
:UITableViewCell {

    var data:ImageInfo?;

    init() {
        super.init(style: UITableViewCellStyle.Default, reuseIdentifier: "favoritesIdentifier");
    }

    func setData(data:ImageInfo) {
        self.data = data;
    }
}

这是我的UITableViewDataSource实现中的单元回收逻辑:

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    var cell:FavoriteRowCell? = tableView.dequeueReusableCellWithIdentifier("favoritesIdentifier") as? FavoriteRowCell;

    if(!cell) {
        cell = FavoriteRowCell();
    }

    var data:ImageInfo = favorites[indexPath!.row];
    cell!.setData(data);

    return cell!;
}

当我在模拟器中运行时,一切都很完美。但是,当我在测试iPod Touch上运行它时,我得到一个NSMallocException并且应用程序崩溃了。它在尝试创建FavoriteRowCell对象时会发生,但我无法弄清楚原因。

有没有人遇到过类似的东西,或者有什么东西你可以看到我可能做错了吗?

2 个答案:

答案 0 :(得分:0)

尝试使用以下方法创建您的单元格:

cell = FavoriteRowCell(style: UITableViewCellStyle.Default, reuseIdentifier: "favoritesIdentifier")

答案 1 :(得分:0)

我相信我找到了问题的原因。 ImageInfo类型是一个结构,而不是一个类,所以我猜这是导致问题的。