无法更新核心数据中保存的数据

时间:2016-08-10 16:04:23

标签: ios swift core-data nsmanagedobjectcontext

我有一个核心数据问题,我无法在表格视图中更新已保存的数据,但我能够将保存的数据传递到目标视图控制器的文本字段,但无法更新它并将其传递给以前的视图控制器。我能够在文本字段中进行编辑,但无法更新先前保存数据的上一个表视图控制器中的内容。

    func Plus(sender: AnyObject) {



        if store == nil
        {
            //get the description of the entity
            let storeDescription = NSEntityDescription.entityForName("Store",inManagedObjectContext: appdelegate.managedObjectContext)

            //we create managed object to be inserted to core data
            let store = EventsandnotesStore(entity : storeDescription!,insertIntoManagedObjectContext:appdelegate.managedObjectContext)
            store.sName = name.text
            store.sDescription = desc.text

            let img = UIImage(named: "image.jpg")
            let imgData = UIImageJPEGRepresentation(img!,1)
            store.sImage = imgData
            do {
                try appdelegate.managedObjectContext.save()
                self.navigationController?.popViewControllerAnimated(true)
            } catch let error as NSError  {
                print("Could not save \(error), \(error.userInfo)")
            }
        }

1 个答案:

答案 0 :(得分:0)

你可以做两件事之一

实现委托模式以将更新的信息传递回原始视图控制器。然后,您可以手动更新tableView的数据源。

或者您可以使用NSFetchedResultsController作为tableView的dataSource并实现其delegate函数。这使您可以通知tableView核心数据已更新。

我推荐后者,它可以让你的设置更加轻松,但让生活更轻松。