我是iOS开发的新手,我正在尝试使用多个托管对象。
例如,测试应用程序有两个实体,一个用于文件夹,另一个用于Planner。它是一对一的类型,所以每个文件夹都有一个计划器。规划师有一个名为notes的属性,用于保存文本字段中的文本。
创建文件夹后,在tableView中的单元格上点击用户segues到传递给selectedFolder对象的规划者视图控制器。在规划师视图控制器()中,我试图确保在执行savePlanner函数时,应该将'UITextView‘文本保存到托管规划师对象的'notes’属性,该属性与'selectedFolder‘有直接关系。
我不确定在保存时如何确保计划器和选定的文件夹之间存在关系。
在规划师视图控制器我有;
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)
}
}发布于 2015-06-21 11:54:45
要建立一对一的关系,你可以从任何一方设置它。在存钱之前就这么做。因此:
selectedFolder.planner = note
// or
note.folder = selectedFolder当然,只有在核心数据模型编辑器中正确设置了关系和反向关系时,这才能起作用。
https://stackoverflow.com/questions/30959506
复制相似问题