【发布时间】:2016-03-28 13:44:31
【问题描述】:
当您单击相关的UICollectionViewCell 时,我有一些代码会增加分数。代码如下:
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
teamScores[indexPath.row] += 1
collectionView.reloadItemsAtIndexPaths([indexPath])
}
这最初工作正常,但是当我返回主屏幕并再次返回应用程序时,如果我再次尝试单击单元格,应用程序似乎会冻结。仔细观察,它似乎处于某种循环中,CPU 以 100% 的速度运行,所需的内存每秒都在增加。
请注意,如果我不是单击单元格而是执行其他操作,则据我所知没有问题。例外是一个重置按钮,它运行代码:
@IBAction func resetScores(sender: AnyObject) {
resetScores()
collectionView.reloadSections(NSIndexSet(index: 0))
}
这种“崩溃”只会在应用再次激活时发生 - 当您切换到另一个选项卡并再次返回时不会发生这种情况。
如果我用reloadData() 替换reloadItemsAtIndexPaths(...) 代码,问题就会消失。这是一个错误,还是我错过了什么?
非常感谢!
【问题讨论】:
标签: swift memory collectionview