teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

情報追加

2020/07/11 12:54

投稿

Ytan
Ytan

スコア39

answer CHANGED
@@ -1,1 +1,15 @@
1
+ 最初self.allTodo.remove(at: indexPath.row)の後にself.selectedTodo.remove(at: indexPath.row)を記入した際エラーが出たのですが(エラーの内容は思い出せません)そもそもこの記述では削除がtodosとcase事に配置した変数との整合性が保たれておらず、エラーに合っていましたので。
2
+ ```
3
+ let deletedItem = self.todos.remove(at: indexPath.row)
4
+
5
+ self.allTodo.removeAll {$0 === deletedItem}
6
+ self.selectedTodo.removeAll {$0 === deletedItem}
7
+ ```
1
- 自己解決できました。
8
+ 下記のように変更しました。
9
+ 一様こちらでは削除はできます。
10
+ しかしエラーとして仮にsegmentのcase2のindexがcase1より多く追加されていて(todoが追加された)
11
+ その場合case2を削除するとcase1の何も情報がないcell(todoが追加されていないcell)の部分が消すことができないためcase1の追加されたcellから消されてしまいます。
12
+
13
+ 上手く言語化できなくて申し訳ありません。
14
+ しかし本来の質問の趣旨は改善されたと思うので自己解決にしました。
15
+ マナーの悪い行いをしてしまい申し訳ありません。