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

时间:2017-01-24 07:09:34

标签: ios swift core-data save

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

这是我到目前为止对单一实体所拥有的:

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 个答案:

答案 0 :(得分:0)

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

了解更多信息:Read this