【Swift】Core Dataの使い方。保存データの更新、削除、ロールバックを行う。(Swift 2.1、XCode 7.2)

2020年6月16日

保存データの更新、削除、ロールバック

前回の記事までは、Core Dataを使って外部ファイルに新しいデータを追加する実装方法を説明してきた。本記事では、外部ファイルに保存したデータを更新、削除したり、外部ファイルに保存する前に取り消す実装方法について説明する。

以降の手順を行う前のXcodeプロジェクトをGitHubに置いたので、試してみる人はご利用されたし。
⇒「テスト用プロジェクト

事前準備では、Search Barに入力した文字列を含むデータを一覧表示するようにしておいた。「取り消しボタン」と「保存ボタン」の機能はまだ実装していない。

 

以下は変更前のViewController.swiefのソースコード

保存データの取得と更新

セルをタップすると雑誌の価格が100円増加するようにする。

UIViewController.swiftに以下のメソッドを追加する。

選択行の価格表示を更新したあと、管理オブジェクトコンテキストからオブジェクトを取得し、priceの値を更新している。この段階ではまだ外部ファイルに保存されていない。

 

コミット、ロールバック

ViewController.swiftに以下のメソッドを追加する。

「保存ボタン」では、管理オブジェクトコンテキストのsaveメソッドを呼び出して外部ファイルにデータを保存している。

「取り消しボタン」では、rollbackメソッドを呼び出して管理オブジェクトコンテキストに格納されているオブジェクトを破棄している。

 

以下は、この時点で実行したプレイ動画。保存ボタンで変更確定、取り消しボタンで表示が元に戻る。

 

データの削除

次に、セルをスワイプして削除する機能を実装する。ViewController.swiftを以下のコードに変更する。

選択行をテーブルビューから削除したあと、選択行のオブジェクトを管理オブジェクトコンテキストから削除している。

 

以下は実際のプレイ動画