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 来定义一个可以在没有数据库的情况下使用的数据模型? 如果没有上下文/持久存储协调器,则无法创建托管对象。 您可以拥有一个全部在内存中的核心数据模型。 这最好作为一个单独的问题来问。