【发布时间】:2016-04-07 03:39:01
【问题描述】:
我下载了一组图像并将它们加载到一个 collectionView 中。我希望能够在按下单个单元格时将所选的单个项目添加到我全局声明的数组中,这样我就可以循环遍历它们以便稍后从核心数据中删除。这条线在项目的顺序方面打印得很好 - print("You selected cell #(indexPath.item)!"),但是第二次按另一个单元格添加到数组中时,我得到一个 fatal错误:索引超出范围错误。我不知道我得到了什么。
var selectedCell: [Int] = [] -> Declared globally
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
// handle tap events
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! MyCollectionViewCell
print("You selected cell #\(indexPath.item)!")
if self.selectedCell.contains(indexPath.item){
print("Item already added")
} else {
self.selectedCell.append(indexPath.item)
}
if selectedCell.count > 0 {
toolbarButton.title = "Remove Item"
}
// let selectCell:UICollectionViewCell = collectionView.cellForItemAtIndexPath(indexPath)!
// selectCell.contentView.backgroundColor = UIColor.whiteColor()
}
【问题讨论】:
-
哪一行给出了数组索引异常?
-
self.selectedCell.append(indexPath.item)
-
我怀疑是其他行。 append 不能给你那个例外。您的代码中的那两条注释行是什么?为什么它们被注释掉了?
-
如果它们被选中,它们会改变单元格背景的颜色。
-
在声明selectedCell时,是否还声明了任何特殊的get/set/willSet/didSet代码块?
标签: ios arrays swift uicollectionview