RealmSwift で配列を扱う手順をまとめます。
少しだけ作業が必要です。
前提条件
例として、以下のようなメモデータのモデルを RealmDB で保存できるよう作りますー。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | struct Memo {     let uniqueId: String     let text: String     let date: Date     let imageFilePaths: [String]     init(uniqueId: String, text: String, date: Date, imageFilePaths: [String]) {         self.uniqueId = uniqueId         self.text = text         self.date = date         self.imageFilePaths = imageFilePaths     } } | 
imageFilePaths という画像の保存パスを配列で管理することを想定しています。
例が分かりにくいというクレームは受け付けません ( ˘ω˘ )
方法
Arrayクラスは Realm では扱えないので、RealmSwift のListクラスを使用します。
Listクラスは Object(そのサブクラスも可)のみ格納できるので、まずは Object を定義します。
| 1 2 3 | class ImageFile: Object {     @objc dynamic var path = "" } | 
ここでは ImageFile というクラスを作成して、そのプロパティに path(String型)を定義しました。
これを使って RealmSwift で定義すると、以下のようになります。
| 1 2 3 4 5 6 7 8 9 10 | class Memo: Object {     @objc dynamic var uniqueId = ""     @objc dynamic var text = ""     @objc dynamic var date = Date()     let imageFilePaths = List<ImageFile>()     override static func primaryKey() -> String {         return "uniqueId"     } } | 
Objective-Cランタイムではジェネリクスが使えないため、let で宣言、dynamic は不要です。
ちなみに RealmDB に画像(Data型)を保存することは可能ですが、16MB以上のデータを保存しようとすると、例外が投げられます/(^o^)\
String型も同様で、16MB以上のデータを保存することはできません。
さいごに
画像(Data型)に関しては検索もかけられないので、
データベースに保存するのは良くないかなって認識。
とりあえず配列が扱えるようになったと思うので、このへんで!
 br>
違うよ!とかこういう方法あるよ!ってのがあれば教えてください。
では( ¯·ω·¯ )

 
  
  
  
  

コメント