我是iOS开发的新手,我正在尝试使用多个托管对象。
例如,测试应用程序有两个实体,一个用于Folder,另一个用于Planner。它是To One类型,因此每个文件夹都有一个计划器。 Planner有一个名为notes的属性,用于保存文本字段中的文本。
创建文件夹后,点击tableView中的单元格,用户将传递给传递selectedFolder
对象的计划视图控制器。在规划视图控制器中,我试图确保在执行savePlanner
功能时,这应该保存' UITextView'文字到'笔记'托管计划器对象的属性,该对象与' selectedFolder'有直接关系。
我不确定如何确保保存时Planner和Selected Folder之间存在关联。
在Planner View Controller中我有;
class PlannerViewController: UIViewController {
//SelectedFolder is the managed object of the cell row
var selectedFolder: Folder!
var planner: Planner?
@IBOutlet weak var plannerTextField: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
//Load Planner Data in text field here..
}
@IBAction func savePlanner(sender: AnyObject) {
//Save Planner Notes To Folder
//Get the context
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
//get entity details
let entity = NSEntityDescription.entityForName("Planner", inManagedObjectContext: moc!)
//Create the managed object to be inserted
let note = Planner(entity: entity!, insertIntoManagedObjectContext: moc!)
//Add current Planner to selectedFolder
selectedFolder.planner = note
//Error
var error: NSError?
if moc!.save(nil){}
//Storing Data
note.notes = plannerTextField.text
moc?.save(&error)
}
}
答案 0 :(得分:1)
要创建一对一关系,您可以从任意一侧进行设置。在保存之前这样做。因此:
selectedFolder.planner = note
// or
note.folder = selectedFolder
当然,这只有在Core Data模型编辑器中正确设置关系和反向关系时才有效。