在导航控制器中,我从视图控制器 1 转到视图控制器 2。
View Controller 1 是一个绑定到 FetchedResultsController 的表视图控制器。它从特定的上下文中获取数据并显示它。然后,如果点击了一行,我会继续查看控制器 2。在 segueing 时,我使用视图控制器 1 中的数据设置了视图控制器 2 的特定 NSManagedObject 属性。
现在,在视图控制器 2 中,我可以使用 NSManagedObject 属性显示数据,然后对其进行更改并执行保存:。当我返回查看控制器 1 时,会反映更改。但是,如果我重新启动应用程序,它不会再反映在任何视图控制器中。
这就是我进行保存的方式。
- (void)hiddenAttributeSwitchSlid:(UISwitch *)sender
{
[self.workoutType.managedObjectContext performBlock:^{
self.workoutType.workoutHiddenByDefault = [NSNumber numberWithBool:sender.isOn];
NSError *error = nil;
if (![self.workoutType.managedObjectContext save:&error]) {
NSLog(@"There was an error in saving to context - %@", [error localizedDescription]);
}
else {
NSLog(@"No error");
}
}];
}
FitnessType 是一个 NSManagedObject,它在 prepareForSegue: 中设置,然后再转到这个视图控制器。
即使我不使用 performBlock:,它也不起作用。
PS - 我知道以前有人问过这类问题。我浏览了它们,但似乎没有任何效果。