見出し画像

[Swift]Realmでデータの永続化(続き)

前回の続きです。前回はRealmにてCRUD処理のCreateとReadについて紹介しましたが、今回は残りのUpdate、Deleteについて紹介します。
なお、Realmのインストール等は割愛します。

データの更新

import UIKit
import RealmSwift

class CategoryViewController: UITableViewController {

    let realm = try! Realm()

    var items: Results<Item>?

             :

    func updateItem(targetIndex: Int) {
        if let item = items?[targetIndex] {
            do {
                try realm.write({
                    item.done = !item.done
                })
            } catch {
                print("Error update item, \(error)")
            }
        }
    }
}

データを更新したい場合は、更新対象のオブジェクトのプロパティをrealm.write内で更新すればOKです。簡単ですね。

データの削除

import UIKit
import RealmSwift

class CategoryViewController: UITableViewController {

    let realm = try! Realm()

    var items: Results<Item>?

             :

    func deleteItem(targetIndex: Int) {
        if let item = items?[targetIndex] {
            do {
                try realm.write({
                    realm.delete(item)
                })
            } catch {
                print("Error delete item, \(error)")
            }
        }
    }
}

データを削除したい場合は、realm.deleteの引数に削除対象のオブジェクトを指定するだけです。これもとても簡単ですね。

終わりに

Realm使いやすい!
ただ、トランザクションの管理が未知なのでこれから勉強します。。。

いいなと思ったら応援しよう!