私はちょうど始まりました。私はUserDefaultsを1回か2回使用しましたが、CoreDataを使用していないので、この状況で使用するかわかりません。私は空の配列からセルが挿入されたテーブルビューを持っています。空の配列には、ページタイトルに応じて文字列の配列が挿入されます。CoreDataとユーザーの削除を保存するためのUserDefaults
つまり、私は、navigationItem.titleを調べるviewDidLoadの関数を持っていて、それが何であるかによって空の配列に正しい文字列を取り込みます。すべてがうまくロードされますが、削除されたアイテムを削除したままにする必要があります。ここに私のコードは次のとおりです。
初期化:
static var places = [String]()
var nycPlaces = ["Central Park", "Rockefeller Center", "Empire State Building"]
var londonPlaces = ["London Eye", "Windsor Castle", "Tower of London"]
var parisPlaces = ["Champs Elysee", "Eiffel Tower", "Catacombs"]
これは正しい配列を持つテーブルビューを移入する機能である - これはのviewDidLoadに呼び出されます。
func populateCells() {
switch navigationItem.title {
case "New York":
ListController.places = nycPlaces
case "London":
ListController.places = londonPlaces
default:
ListController.places = parisPlaces
}
tableView.reloadData()
}
および削除し、私は持っている:
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)
{
if editingStyle == .delete
{
tableView.beginUpdates()
ListController.places.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
tableView.endUpdates()
}
}
問題は私がページから離れて移動するときそれ以前に削除された配列に関係なく、空の配列は3つの文字列で再ポピュレートされます。削除されたセルが戻ってこないようにするにはどうすればよいですか?
ありがとうございました!
私は以下の回答に反対し、コアデータ "と呼ばれる。ユーザーのデフォルトをオブジェクト永続性システムとして動作させると、アプリケーションや要件が複雑になるため、時間が無駄になります。 – Paulw11
これは公正なコメント@ Paulw11です。これは本当にあなたがこれと一緒に行くつもりの複雑さに依存します。これらのリストをRESTfulサービスのレスポンスによって作成したい場合や、より多くのタイプの場所やサブリージョンを使用したい場合は、CoreDataをもっと有効なオプションにすることができます。また、CoreDataは関係なく知っておくと良いことです:) – Jake