2016-03-30 18 views
0

からアイテムを取り消し、私は次のコードを持っている:これは聞かせてインデックスは= selectedIndexPaths.indexOf(indexPath.row)選択解除し、アレイ

場合 :

var selectedIndexPaths = [NSDate]() 

    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 

     let cell = collectionView.cellForItemAtIndexPath(indexPath) as? PartExpense 

     if cell?.selected == true { 
      cell?.layer.borderWidth = 4.0 
      cell?.layer.borderColor = UIColor.greenColor().CGColor 

      selectedIndexPaths.append(cell!.idPartecipant) 

      print(selectedIndexPaths) 


     } 
    } 

    func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) { 
     let cell = collectionView.cellForItemAtIndexPath(indexPath) 
     if cell?.selected == false { 
      cell?.layer.borderColor = UIColor.clearColor().CGColor 


      if let index = selectedIndexPaths.indexOf(indexPath.row) { 
       selectedIndexPaths.removeAtIndex(index) 
       print(selectedIndexPaths) 
      } 

     } 

    } 

すべてがラインまでうまくいきますエラー: "Int型の値を期待した型NSDateに変換できません"これを行うにはどうすればよいですか?このエラーを回避するために、どのように配列を変換できますか?

答えて

0

あなたが書いたやり方は、その配列内のすべてのNSDateに "indexPath.row"という日付のインデックスが何を要求しているかです。エラーはindexPath.rowが日付ではなくintであるということです。あなたは正確に何をしようとしていますか?

+0

この特定の要素idPartecipantは、coreDataで格納されたNsdateである必要があります。行の選択を解除すると、要素が削除されている必要があります。 – user1679705

+0

データの元のデータソース(cellForItemAtIndexPathで使用されている配列)を検索することによって、選択解除された日付を最初に検索します。あなたが選択解除されたものを持っていたらdeselectedDataを許可すれば、その日のために をおselectedIndexPaths配列を検索:NSDate = dataSouce [indexPath.row] { 指数= selectedIndexPaths.indexOf(deselectedData){ selectedIndexPaths.removeAtIndex(インデックス)を聞かせている場合 } }あなたのコードで –

+0

を選択したときに時々このエラーが表示されます。「致命的なエラー:インデックスが範囲外です」 – user1679705

関連する問題