1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】Realm DatabaseでのDB操作方法について

Posted at

iOSのアプリ開発時に設定画面で使用したRealmについてまとめました。

Realm Database

Realm Databaseは、SQLiteと違いSQL文は使用せずにデータの追加等を行います。
Realm Databaseを使用する場合、DB用にファイルを作成しデータの追加等を行います

DBの作成

Objectを継承させて、カラムを追加します。
カラムの追加には初期値の入力が必要になります。

RealmDB.swift
import UIKit
import RealmSwift

//Relam
class GPSConfig: Object {
    
    //Int型
    @objc dynamic var column1 = 0
    //String型
    @objc dynamic var column2 = ""

}

データの追加

realm.add(RealmDB(value: object)) でDBにデータを追加できます。

let realm = try! Realm()
let object = RealmDB()
object.column1 = "data1"
object.column2 = 1

try! realm.write {
     realm.add(RealmDB(value: object))
}

データの更新

登録したデータを変更する場合、以下のようにします。
firstで最初に登録したデータを取得できます。

let realm = try! Realm()
let object = realm.objects(RealmDB.self).first
    
try! realm.write {
     object?.object2 = 2
}

データの削除

realm.delete(object) で指定したデータを削除することができます。
データをしてする際は、filterで特定のデータを取得できます。


let realm = try! Realm()
let object = realm.objects(RealmDB.self).filter("column1 == \"data1\"")
try! realm.write {
     realm.delete(object)
}

カラムを追加した場合

DBにカラムを追加した場合、そのままだとエラーになるため、スキーマバージョンを上げる必要があります。


_ = Realm.Configuration(
     schemaVersion: 1,
     migrationBlock: { migration, oldSchemaVersion in
          //if (oldSchemaVersion < 1) {}
     })
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?