我正在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
对象时会发生这种情况,但我不知道为什么。
有人遇到过类似的事情吗?或者你能看到我可能做错了什么吗?
尝试使用创建单元格
cell = FavoriteRowCell(style: UITableViewCellStyle.Default, reuseIdentifier: "favoritesIdentifier")
我相信我找到了问题的原因。ImageInfo
类型是一个结构,而不是一个类,所以我想这是造成问题的原因。