核心数据添加和检索到多个表如何
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
【讨论】:
以上是关于核心数据添加和检索到多个表如何的主要内容,如果未能解决你的问题,请参考以下文章