如何跨VC更改某个核心数据的值/如何知道创建的CoreData的索引?

How to change the value of a certain core data across VCs/ How to know the index of a created CoreData?

我从一个TableView开始创建和存储用户信息。这就是我在 CreateTrialViewController 中创建名为“Trials”的核心数据实体的方式。回来后tableViewController就可以成功取到

       let trial : Trials = NSEntityDescription.insertNewObjectForEntityForName("Trials", inManagedObjectContext: self.managedObjectContext!) as? Trials
        {  
            trial.project = theProject.text
            trial.record = theRecord.text
            trial.notes = theNotes.text
            trial.percentile = ""         
            managedObjectContext?.save(nil)
        }        
'

但是在我创建 Trial 之后,我会在接下来的 measureViewController 中从加速度计中得到一些计算结果,我想将结果保存到 'trial.percentile' 中。

我已经把结果转成字符串了,可以直接写到core data属性里面。 但是我怎么知道我刚刚创建的这个核心数据的索引呢?我应该尝试使用'segue'来传输吗?

在tableView中是按日期升序取的,索引清晰。但是这里在下面VC怎么知道索引呢?我仍然无法自己解决这个问题......我的 VCs 的顺序是:TableViewController -> CreateTrialViewController -> MeasureViewController -> TableViewController(重新开始)

您的 table 视图控制器可以保留对新创建对象的引用。将对象(trial)插入到原来的view controller中,传递给prepareForSegue中的下一个controller。所以 CreateTrialViewController 以一个空白对象开始,table 视图控制器引用了该对象。

你配置对象,去measure controller,修改对象。完成后,您从导航堆栈中弹出这两个控制器并返回到原始 table 视图控制器中。

因为您的 table 视图控制器启用了 NSFetchedResultsControllerDelegate,它会自行更新以反映新对象的数据。记住,你仍然有这个对象的引用,所以你可以只使用 indexPathForObject 来检索它的索引路径。