Search code examples
swiftrealmrealm-mobile-platform

How to use Array or Dictionary in RealmSwift?


I'm tried RealmSwift.

And I save my model. but RealmSwift does not support Array, Dic... What can I do?

import Foundation
import RealmSwift

class DumbData: Object {
    @objc dynamic var myModel: [[String: String]]!
}

class ViewController: UIViewController {
    ...

    let data = DumbData()
    data.myModel = [["asdf": "1234"]]

    let realm = try! Reaml()
    try realm.write {
        realm.add(data) // error. Realm Does not support Array, Dic...
    }
    ...
}

Solution

  • Array usually represented as List<T>. This allows to handle many-to-many relationship in Realm.

    Dictionary is not supported by Realm. But it can be achieve with 2 classes and to-many relationship. For example:

    class User: Object {
        dynamic var name = ""
        let stackOverflowQuestions = List<Question>()
    }
    
    class Question: Object {
        dynamic var title = ""
        dynamic var message = ""
        // etc.
    }