我已经尝试了很多,研究了很多,但从未找到这个问题或类似教程的答案,我有类似 firebase 的数据库,请参阅下面的树。如何将数据存储到 Core data
我想要的与上面类似的是
Model->Form
|
--> Model-FormElements
| |
| -->TextField
| |
| --> textField1
| --> textField2
| --> textFiedl3
--> Model-FormData
| |
| -->TextFieldName
| |
| --> FullName
| --> Email
| --> City
然后我想创建不同类型的表单,其中一些有按钮和标题或标签和标题
到目前为止我所做的是将对象插入新实体而不是实体的子实体中:
@IBAction func saveAction(_ sender: Any) {
let appDel:AppDelegate = (UIApplication.shared.delegate as! AppDelegate)
let context:NSManagedObjectContext = appDel.persistentContainer.viewContext
let formDataEntity = NSEntityDescription.insertNewObject(forEntityName: "FormElements", into: context) as NSManagedObject
formDataEntity.setValue(textFieldElement, forKey: "textField")
formDataEntity.setValue(buttonElement, forKey: "button")
formDataEntity.setValue(labelElement, forKey: "label")
formDataEntity.setValue(sectionElement, forKey: "section")
formDataEntity.setValue(dateElement, forKey: "date")
formDataEntity.setValue(textViewElement, forKey: "textView")
formDataEntity.setValue(textViewNameElement, forKey: "textViewName")
formDataEntity.setValue(signViewElement, forKey: "signView")
formDataEntity.setValue(signViewNameElement, forKey: "signViewName")
formDataEntity.setValue(imageElement, forKey: "imageView")
formDataEntity.setValue(imageNameLabelElement, forKey: "imageViewName")
formDataEntity.setValue(checkBoxElement, forKey: "checkBox")
formDataEntity.setValue(spaceElement, forKey: "space")
//extra formData saving of names to elements
let formDataNameEntity = NSEntityDescription.insertNewObject(forEntityName: "FormData", into: context) as NSManagedObject
formDataNameEntity.setValue(textFieldNameFD, forKey: "textFieldD")
formDataNameEntity.setValue(buttonNameFD, forKey: "buttonD")
formDataNameEntity.setValue(labelNameFD, forKey: "labelD")
formDataNameEntity.setValue(sectionNameFD, forKey: "sectionD")
formDataNameEntity.setValue(dateNameFD, forKey: "dateD")
formDataNameEntity.setValue(textViewNameFD, forKey: "textViewNameD")
formDataNameEntity.setValue(signViewNameFD, forKey: "signViewNameD")
formDataNameEntity.setValue(imageNameLabelFD, forKey: "imageViewNameD")
do {
try context.save()
} catch {}
}
最佳答案
您无法使用 Firebase 等核心数据。 Firebase 是 NoSql 数据库,而 coredata 不是。因此,为了实现使用 Firebase 服务等核心数据的目标,您可以创建多个实体并管理它们之间的关系。
关于ios - 为核心数据 swift ios 中的子子项添加值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48274483/