如何使用 Realm Swift 和 ObjectMapper 来持久化数组?

How to persist an array using Realm Swift and ObjectMapper?

当我尝试保存来自 JSON 字符串的数组时出现错误。我尝试使用 RLMArray 但没有成功。

我收到的错误是:

'RLMException', reason: 'Property 'page' is of type 'RLMArray<(null)>' which is not a supported RLMArray object type.

我的模型class:

public class Project: Object, Mappable {

    dynamic var id = 0
    dynamic var user: User!
    dynamic var page: RLMArray!
    dynamic var error_message: String! = ""
    dynamic var status: String! = ""

    override public static func primaryKey() -> String? {
        return "id"
    }

    required convenience public init?(_ map: Map) {
        self.init()
        mapping(map)
    }

    public func mapping(map: Map) {
        user <- map["user"]
        page <- map["page"]
        error_message <- map["error_message"]
        status <- map["status"]

    }
}

JSON 文件:

let parameters = [
                "user": [
                    "username": "Marcus",
                    "password": "123asd"
                ],
                "page": [
                    "home": [
                                [
                                "kind": "navigation",
                                "title": "suite",
                                "image": "ic_suite",
                                "backgroundImage": "ic_background1"
                                ],
                                [
                                    "kind": "navigation",
                                    "title": "jardim",
                                    "image": "ic_jardim",
                                    "backgroundImage": "ic_background2"
                                ]
                            ],
                    "suite": [
                                [
                                "kind": "button",
                                "title": "My Master Suite",
                                "textColor": "0x000000",
                                "textSize": "16"
                                ]
                    ]
                ],
                "status": "success",
                "error_message": ""
        ]
self.project = Mapper<Project>().map(parameters)

您的 class 继承自 Object,领域 Swift 的基础 class,但正在尝试使用 RLMArray,领域 [=15] =] 类型,在其界面中。您不能以这种方式混合使用 Realm Swift 和 Realm Objective-C。使用 Realm Swift.

时,您应该将 List<T> 用于数组属性