核心数据添加和检索到多个表如何

Posted

技术标签:

【中文标题】核心数据添加和检索到多个表如何【英文标题】:Core Data adding and retrieving to multiple tables how to 【发布时间】:2017-01-24 07:09:33 【问题描述】:

对于那些知道的人来说只是一个普遍的问题。我刚刚学会了使用单个实体(表)保存和检索我的第一个核心数据。 问题是我是否想从多个实体中保存和检索.. 最好的方法是什么?我需要添加更多检索和保存功能吗?还是有一种方法可以自定义保存和检索方法来为多个实体执行此操作?例如添加边和沙漠实体。

到目前为止,这是我对单个实体的了解:

class databasemanager: NSObject 
    let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

    func addRow(name:String, price:String) 
        // set the core data to access the Student Entity
        let entityDescription = NSEntityDescription.entity(forEntityName: "Pizzas", in: managedObjectContext)
        let pizza = Pizzas(entity: entityDescription!, insertInto: managedObjectContext)
        // Assign value to the entity
        pizza.name = name
        pizza.price = price

        do
            try managedObjectContext.save()
            // showMessage(”OK Adding to Core Data")
         catch 
            // showMessage(”Error adding to Core Data")
        
    

    func retrieveRows() -> String
        let entityDescription = NSEntityDescription.entity(forEntityName: "Pizzas", in: managedObjectContext)
        let request = NSFetchRequest<NSFetchRequestResult>()
        request.entity = entityDescription // get the table pizza
        var pizzaObjs = [Pizzas]()

        do
           try pizzaObjs = managedObjectContext.fetch(request) as! [Pizzas] 
        catch  //show some error msg
        

        var msg: String = ""

        for pizza in pizzaObjs 
            msg = msg + pizza.name! + ", " + pizza.price! + "\n" 
        return msg


【问题讨论】:

【参考方案1】:

在 coreData 中,我们有很好的选择,那就是关系。您可以创建可能是一对一或一对多的关系。之后使用编辑选项创建 NSManagedObject 类,该选项将自动创建添加或删除方法,以便您可以通过主实体访问多个实体。

欲了解更多信息:Read this

【讨论】:

以上是关于核心数据添加和检索到多个表如何的主要内容,如果未能解决你的问题,请参考以下文章

核心数据 - 保存和检索属性 - 示例代码

如何从核心数据表 ios 中检索数据?

如何从多个聚合表中检索数据?

如何使用 PHP 表单从多个表中检索数据?

如何从具有多个关联的两个 MySQL 表中检索数据

如何使用公共列从多个表中检索数据