【Swift】RealmSwiftの使い方(基本文法)

Realm SwiftのCRUD操作についてのまとめです。
ユーザーモデルを1つ用意し、そのユーザーの名前をレコードに追加、更新、削除、読み込みするものです。
レコードに保存したものはtableViewで確認できるようにし、1つの画面でさっと一連の流れを確認できるようにしています。

<h3> 実行環境 </h3>
Swift:4.1.2
Xcode:10.1
Realm:3.16.0
RealmSwift:3.16.0

<h3> RealmSwiftでのモデル </h3>
モデルクラスは、RealmSwiftが用意している、Objectクラスを継承して作ります。
Arrayはサポートされていないので、Listを使って保存するようですが、今回は簡単のため使わずに一連のCRUD操作とその確認を行います。

<h3>RealmSwiftでのCreate処理</h3>

<h3>RealmSwiftでのRead処理</h3>

<h3>RealmSwiftでのDelete処理</h3>

<h3>RealmSwiftでのUpdate処理</h3>

<h3> RealmSwiftのCRUD </h3>
CRUD確認用アプリを作成。

コード全文は下記の通り

モデルクラス

CRUD操作と表示を行うViewController

Realmに格納されたデータを視覚的に分かりやすく確認したいときは、Realm Browserが便利でした。
https://itunes.apple.com/jp/app/realm-browser/id1007457278?mt=12

なお、RealmSwiftには、AutoIncrement機能はないようなので、IDをユニークなものにしようとすると、自前で実装するしかないようです。
それはまた別記事で行おうと思います。

追記)
モデルクラスに下記のように追加することで、新規にレコード追加した際にユニークキーを降ることができるようです。
@objc dynamic var uniqueID:String = NSUUID().uuidString

こちらは下記リンクの記事を参考にさせていただきました。ありがとうございました!
https://qiita.com/kotala_b/items/68b9608df6c8bac80f67

追記
下記のように、今回のケースではモデルクラス内のメンバ変数の値はいずれの書き方でもとってこれる。ただ、別のプロジェクトで使ったところ、element[“メンバ変数の名前”]の形でとってこなければ、保存した値をとってこれず、モデルクラスの初期化の際に入る値(例えば、Double型なら0.0など)が入ってしまうことがあった。
→原因は、モデルクラスのメンバ変数に、dynamicをつけ忘れていたことでした。dynamicをつけていれば、いずれの方法でもきちんと保存したものをとってくることができるようです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする