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


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
}

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

这是我的应用程序数据模型的简化版本,其中许多钱包可以放在一个包里,许多信用卡可以放在钱包里。

问题1.我有一个经理类要添加、删除和从我的包中获取东西,我应该再有 2 个类来为我的钱包和卡结构做同样的事情吗?或者在结构内部具有变异功能。并可能添加到这些结构中的 getFunction 中

问题2.有没有更好的方法来建模,这似乎是一个大混乱。

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

执行此操作的最佳方法是什么,以便更具可读性并且将来更容易被理解和维护吗?

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

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

那么,为什么还要为任何事情设置经理类呢? 结构已经定义了可能的结构,向钱包添加新卡已经非常简单:

myWallet1.cards.append(myCard2)

我不太确定你想问的问题 3 是什么 - 我想你想问你是否可以使用 CoreData 来定义一个可以在没有数据库的情况下使用的数据模型? 如果没有上下文/持久存储协调器,则无法创建托管对象。 您可以拥有一个全部在内存中的核心数据模型。 这最好作为一个单独的问题来问。

最新更新