首页 > 解决方案 > 如何使用另一种自定义类型的子对象将对象保存在 Core Data 中?

问题描述

我正在使用 SwiftUI 2.0 为 iOS 构建一个简单的理发应用程序。

我有这些课程:

class Cliente: Codable {
    var id: Int?
    let nome, cognome, dataDiNascita, cellulare: String
    let idAccount: Account
}


class Account: Codable {
    var id: Int?
    let email, password: String
    let idAccountTipologia: AccountTipologia
}


class AccountTipologia: Codable {
    let id: Int
    let nome: String
}

“Cliente”类包含有关用户的所有信息,例如姓名、姓氏等。“帐户”类包含有关用户登录凭据的所有信息,例如电子邮件和密码。“AccountTipologia”类包含有关用户帐户类型的所有信息,例如开发人员、用户或管理员。

这是从数据库中检索到的 Cliente 实例的 JSON 表示:

{
    "id": 1,
    "nome": "clienteName",
    "cognome": "clienteSurname",
    "dataDiNascita": "1998-09-09T00:00:00.000+00:00",
    "cellulare": "1234567890",
    "idAccount": {
        "id": 26,
        "email": "userEmail@gmail.com",
        "password": "userPassword",
        "idAccountTipologia": {
            "id": 1,
            "nome": "Developer"
        }
    }
}

我正在尝试在 SwiftUI 2.0 中使用 Core Data 在登录后保存 Cliente 实例,但 Core Data 上唯一可用的类型是 Integer、String、Boolean 等......而且我无法保存 Account 和 AccountTipologia 变量作为客户的孩子。

那么......我该如何正确保存整个“Cliente”实例?

标签: iosswiftcore-dataswiftui

解决方案


我认为您需要创建两个不同的实体并relationship在它们之间创建一个以获得您的解决方案。

我想在你的情况下它不会是双向的。您需要正确配置关系,定义逆关系。请参阅以下链接以更好地理解

https://medium.com/@aliakhtar_16369/mastering-in-coredata-part-5-relationship-between-entities-in-core-data-b8fea1b50efb


推荐阅读