イメージのコレクションをダウンロードし、collectionViewにロードしました。個別のセルを押すたびにグローバルに宣言された配列に選択された個々の項目を追加できるようにしたいので、後でそれらをループしてコアデータから削除することができます。この行は、項目print( "あなたは#(indexPath.item)を選択しました!")の順番で表示されますが、2回目に別のセルを押して配列に追加すると、という致命的なエラーが発生します。インデックスが範囲外です。エラー。私は何を得ているのか分からない。Swift、CollectionView、致命的なエラー:インデックスが範囲外です。
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()
}
どの列で配列インデックス例外が発生しますか? – Paulw11
self.selectedCell.append(indexPath.item) –
それは他の行と思われます。 appendはあなたにその例外を与えることはできません。あなたのコードにある2つのコメント行は何ですか?なぜ彼らはコメントアウトされていますか? – Shripada