如何使用嵌套类型正确编写数据模型或在 Swift 中使用 CoreData

how to write data model properly with nested types properly or use CoreData in Swift

struct Bag {
   let name: String
   let wallets:[Wallet]

   mutating func addWallet(wallet: Wallet){
      wallets.append(wallet) 
   }
}

struct Wallet {
   let name: String
   let cards:[Card]

   mutating func addCard(card: card){
      cards.append(card) 
   }

}

struct Card {
   let name: String
   let number: String
}

class Manager{
   // it can add , remove and keep track of Bags
}

我正在学习如何创建自己的数据模型。

这是我的App数据模型的简化版,一个Bag可以放很多钱包,一个钱包可以放很多信用卡。

问题 1. 我有一个经理 Class 可以从我的包中添加、删除和获取东西,我是否应该再有 2 个 类 来为我的钱包和卡片结构做同样的事情?或者在结构内部有变异函数..并且可能在这些结构内部的 getFunction 中添加

问题2,有没有更好的建模方法,好像乱七八糟的。

问题 3。在我以前的应用程序中,我只有 3 个简单的结构,并且在 coreData 中有关系,让 CoreData 处理所有事情。 CoreData可以用来构建数据模型还是需要分离?

这样做的最佳方法是什么,这样可读性更强 以后更容易理解和维护?

为什么不简化所有结构来制作您想要修改变量的部分,无论如何您都必须这样做才能使变异方法起作用 - 但转储变异方法:

struct Bag {
    let name: String
    var wallets:[Wallet]
}

struct Wallet {
    let name: String
    var cards:[Card]
}

struct Card {
    let name: String
    let number: String
}

那么,为什么还要有一个经理 class 来处理任何事情?可能的结构已经由结构定义,并且将新卡添加到钱包已经非常简单:

myWallet1.cards.append(myCard2)

我不太确定您在问题 3 中想问什么 - 我想您是想问您是否可以使用 CoreData 来定义无需数据库即可使用的数据模型?没有 context/persistent 商店协调员,您无法创建托管对象。您可以拥有一个全部在内存中的核心数据模型。这可能最好作为一个单独的问题来问。