gpt4 book ai didi

ios - Realm 映射 null

转载 作者:行者123 更新时间:2023-11-28 15:35:47 28 4
gpt4 key购买 nike

{
"in_app": [
{
"email": "hfqfqlo@qudqg.in",
"active_platforms": [
"email"
],
"type": "primary_email",
"linked_to": {
"_id": "59245c790550bb34cd42e51d",
"company": "ABC Corp",
"image": " ",
"designation": "CEO",
"name": "John Doe"
}
},
{
"email": "knowprff2ashant123afafafafafyadav@gmail.com",
"active_platforms": [
"email"
],
"type": "primary_email",
"linked_to": {
"_id": "5926b5d780ff2ad821a669dab134d",
"company": null,
"image": null,
"designation": null,
"name": null
}
}
]
}

InAppUser 模型

class InAppUser: Object, Mappable{
dynamic var email: String = ""
dynamic var type: String = ""
dynamic var linked_to: AppUser?

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


func mapping(map: Map) {
email <- map["email"]
type <- map["type"]
linked_to <- map["linked_to"]

}

}

class AppUser : Object, Mappable {

dynamic var userId: String = ""
dynamic var company: String = ""
dynamic var designation: String = ""
dynamic var name: String = ""
dynamic var image: String = ""
dynamic var email: String = ""


override class func primaryKey() -> String? {
return "email"
}

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

func mapping(map: Map) {
userId <- map["_id"]
company <- map["company"]
designation <- map["designation"]
name <- map["name"]
image <- map["image"]
email <- map["login_email"]
}
}

当我打印我的条目时,它在第一个“linked_to”中显示正确的值,但后来当我拉出所有 Realm 对象时,只有 ID 出现在“linked_to”和其他名称等是 null for hfqfqlo@qudqg.in.

hfqfqlo@qudqg.in 有名称,但现在仍在显示。对于 knowprff2ashant123afafafafafyadav@gmail.com 它很好,因为它返回 null

最佳答案

您已将电子邮件设置为 AppUser 上的主键并将其映射到“login_email”。在您的 JSON 中,linked_to 部分没有任何“login_email”,因此主键始终为空字符串(您设置的默认值为“”)。所以实际上你总是覆盖同一个 AppUser。数组中的最后一个字段的所有字段都为 null,因此最终所有用户(或实际上是唯一的用户)的所有属性都为 null。

您应该确保您的 json 中的所有“linked_to”用户都有一个“login_email”,或者将您的主键更改为实际唯一的内容,例如 userId。

关于ios - Realm 映射 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44288541/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com