Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何正确地使用嵌套类型编写数据模型或在Swift中使用CoreData_Arrays_Swift_Core Data_Struct_Data Modeling - Fatal编程技术网

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

Arrays 如何正确地使用嵌套类型编写数据模型或在Swift中使用CoreData,arrays,swift,core-data,struct,data-modeling,Arrays,Swift,Core Data,Struct,Data Modeling,我正在学习如何创建自己的数据模型 这是我的应用程序数据模型的简化版本,许多钱包可以放在一个袋子里,许多信用卡可以放在一个钱包里 问题1。我有一个经理类来添加、删除和从我的包中取出东西,我应该有另外两个类来为我的钱包和卡片结构做同样的事情吗?或者在struct..中有变异函数,也可以在这些结构中的getFunction中添加 问题2。有没有更好的方法来模拟这一点,它看起来像一个大烂摊子 问题3。在我以前的应用程序中,我只需要3个简单的结构和coreData中的关系,就可以让coreData处理所有

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

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

问题1。我有一个经理类来添加、删除和从我的包中取出东西,我应该有另外两个类来为我的钱包和卡片结构做同样的事情吗?或者在struct..中有变异函数,也可以在这些结构中的getFunction中添加

问题2。有没有更好的方法来模拟这一点,它看起来像一个大烂摊子

问题3。在我以前的应用程序中,我只需要3个简单的结构和coreData中的关系,就可以让coreData处理所有事情。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
}
那么,为什么还要为任何事情上经理课呢?结构已经定义了可能的结构,向钱包中添加新卡已经非常简单:

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

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

struct Card {
    let name: String
    let number: String
}
我不太清楚你想问的问题3是什么-我想你想问的是,你是否可以使用CoreData来定义一个数据模型,而不需要数据库就可以使用它?如果没有上下文/持久存储协调器,则无法创建托管对象。您可以拥有一个全部在内存中的核心数据模型。这可能最好作为一个单独的问题问

myWallet1.cards.append(myCard2)