无法保存托管对象上下文

时间:2015-06-23 20:25:33

标签: ios swift core-data

我有一个文件夹实体和一个带有note属性的 Planner 实体,它们具有To One关系。我正在尝试为每个文件夹添加默认计划程序,并为note属性值保存一些默认文本。

所以基本上在创建文件夹后,点击它应该打开要编辑和保存的注释。但在创建新文件夹时,我似乎无法添加默认计划程序。我不确定我哪里出错了,此刻试图显示folder.planner.note导致崩溃 - 没有错误,这意味着该文件夹没有计划者。

[更新] 最初我没有在文件夹和计划器之间创建关系。这样做之后又发生了另一个错误,所以post已经移动了。

以下是创建文件夹时的代码:

 //Add new folder
 //Get the context
     let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
 //get entity details
     let entity = NSEntityDescription.entityForName("Folder", inManagedObjectContext: moc!)
 //Create the managed object to be inserted
     let folder = Folder(entity: entity!, insertIntoManagedObjectContext: moc!)

        //Error
         var error: NSError?
            if moc!.save(nil){}

        //Storing Data
        folder.title = folderName.text
        folder.details = folderDetails.text
        folder.date = folderDate.date

        //Add Default Planner Note to Folder

        //Get entity details
        let entityPlanner = NSEntityDescription.entityForName("Planner", inManagedObjectContext: moc!)

        //Create the managed object to be inserted
        let planner = Planner(entity: entityPlanner!, insertIntoManagedObjectContext: moc!)

        //Add Text

        planner.notes = "Default text"

        //add planner to folder just added 

        folder.planner = planner

        //Insert the new note into the folder planner

        var folderPlanner = folder.planner    
        folderPlanner.notes = planner.notes 

    moc?.save(&error)

1 个答案:

答案 0 :(得分:1)

您尚未在folderplanner之间设置关系 宾语。你必须设置

folder.planner = planner

planner.folder = folder