如何使用嵌套类型正确编写数据模型或在 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 商店协调员,您无法创建托管对象。您可以拥有一个全部在内存中的核心数据模型。这可能最好作为一个单独的问题来问。
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 商店协调员,您无法创建托管对象。您可以拥有一个全部在内存中的核心数据模型。这可能最好作为一个单独的问题来问。