【SwiftUI】RealmのList型の使い方とForEachで取り出す方法

この記事からわかること
- Realm SwiftのList型とは?
- 使い方や定義方法
- ForEachを使ったデータの取り出し方
- 配列からのキャスト(型変換)
\ アプリをリリースしました /
iOSアプリに簡単に導入できるデータベースRealmのList型についてまとめていきたいと思います。
RealmのList型とは?
List型
はRealm Swiftライブラリを導入すると使用可能になるコレクション形式のクラスの1つです。Swiftで扱えるArray
と似たような形式であり、同じような操作方法で扱うことができます。しかしRealmではArray型は扱えないのでRealm用のコレクション型が用意されています。
公式リファレンスによると「Listは1対多関係を定義するために使用されるRealmのコンテナータイプです」と記述されていました。1つのデータに対して複数の値が紐づくような構造の際に使用してねってことのようです。
格納できるデータ型はBool
、Int
、Int8
、Int16
、Int32
、Int64
、Double
、Float
、String
、Date
、Data
などです。
List型のテーブル定義
1対多となるテーブル定義での使い方を見ていきます。今回は1つのグループ(UserGroup)の中に複数のユーザー(User)が格納される場合で使用してみます。
テーブルで定義する際はRealmSwift.List<Element>
のように指定します。クラスは初期値が必要なので()
をつけて空のListを生成しています。
テーブル定義
実際のRealmデータ
これで上記のようなデータが生成できます。id
1つに対して複数のユーザーが紐づいている形になっています。
List型はForEachで取り出せる
定義されているテーブルがObjectKeyIdentifiable
プロトコルに準拠している場合、List型はForEachやListなどで回してデータを取り出すことができます。
配列からのキャスト(型変換)
配列(Array
)型はRealmSwift.List
のappend(objectsIn:)
メソッドを使用することでキャストすることができます。
RealmSwift.Listから配列へのキャスト
RealmSwift.List
型から配列(Array
)型へはイニシャライザを使用することでキャストすることができます。以下は一度型から配列をRealmSwift.List
に変換しまた配列に戻しています。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。
私がSwift UI学習に使用した参考書
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。