如何跨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
来检索它的索引路径。
我从一个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
来检索它的索引路径。