前提・実現したいこと
配列が表示されたTableViewのCellにある削除ボタンを押すと、以下のエラーが出てアプリが落ちてしまいます。
そのcellの内容だけ配列から削除して再保存したいのですが、どうしたら解決できますか?
発生している問題・エラーメッセージ
Thread 1: signal SIGABRT
該当のソースコード
このエラーは配列関係のミスで出ることが多いそうなので、以下の部分が間違っていると考えています。
Swift
1let userDefaults = UserDefaults(suiteName: "group.com.xxxxx") 2if var menuList:[String] = self.userDefaults?.array(forKey: "titlelist") as? [String] { 3 menuList.remove(at: indexPath.row) 4 self.userDefaults?.set(menuList, forKey: "titlelist") 5}
現在この配列にはサンプルとして以下のものが入っています。
Swift
1let list: [String] = ["受験日","誕生日","記念日"] 2userDefaults?.set(list, forKey: "titlelist")
補足情報(FW/ツールのバージョンなど)
Xcode 11.3.1
Swift5.0
コンソールにエラー内容が書かれていると思うので、それを貼ってください。
また、エラー発生箇所はデバッグ実行時に勝手に該当箇所で止まったような気がしますが、
止まらないのであれば例外発生時にブレークするようにXcode側を設定してください。
参考:
https://qiita.com/mono0926/items/bf70c7ef15db046ee163
「terminating with uncaught exception of type NSException」というエラーが表示されました。
省略しないで全部貼ってください・・・
自己解決しました。出力されていたエラーを調べたところ、deleteRowsでcellを削除した後にindexPath.rowを取得しようとしていたのが原因でした…。
回答1件
あなたの回答
tips
プレビュー