gpt4 book ai didi

ios - 核心数据更新尝试在 TableView 中显示但不持久

转载 作者:行者123 更新时间:2023-11-29 03:23:22 25 4
gpt4 key购买 nike

我有一个使用 UItableview 和单个 UIViewController 的应用程序。 UIViewController 用于所有添加/编辑/查看

我可以添加和查看,然后切换到编辑。 我遇到的问题是在更新后将数据保留在核心数据中。编辑/更新后,更改在 TableView 中可见,但在应用程序重新启动时(或从那时返回到表)查看)更改消失了。

tableview类在prepareForSegue中设置NSManagedObject,如下所示:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UIButton *)sender
{
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSManagedObject *selectedEntry = [fetchResultsArray objectAtIndex:indexPath.row];
DSAdd *wadd = [segue destinationViewController];
if ([segue.identifier isEqualToString: @"detailsSegue"])
{
wadd.callType = 2; //view details
wadd.selectedEntry = selectedEntry;
}
else
{
wadd.callType = 0; //add
}
}

在 View Controller 的 header 中,我声明:

@property(强)NSManagedObject *selectedEntry;

在 View Controller 的类中,我有以下 Save 方法:

- (void) saveData
{
DBUtils *dbu = [[DBUtils alloc] init];
NSManagedObjectContext *context = [dbu managedObjectContext];
if (isEditMode) //<-- THIS PART DOES NOT WORK
{
NSLog(@"%@",[_selectedEntry valueForKey:@"name"]); //prints old value
[_selectedEntry setValue:_nameTF.text forKey:@"name"];
NSLog(@"%@",[_selectedEntry valueForKey:@"name"]); //prints new value
}
else // <-- THIS PART WORKS
{
NSManagedObject *newItem;
newItem = [NSEntityDescription insertNewObjectForEntityForName:@"Entry" inManagedObjectContext:context];

[newItem setValue:[NSNumber numberWithInt:1] forKey:@"catId"];
[newItem setValue:_nameTF.text forKey:@"name"];
} //else

NSError *error;
if (![context save:&error]) {
NSLog(@"Failed to save - error: %@", [error localizedDescription]);
}
[self.navigationController popViewControllerAnimated:YES];
}

感谢您的帮助!

最佳答案

首先,您需要确保您正在使用的 NSManagedObject 属于您要保存的上下文。

然后你需要检查这个上下文是如何配置的。如果它配置了持久存储协调器,那么 save 将提交到存储。如果它配置有父上下文,则 save 会将更改推送到父上下文而不是保存到存储。在这种情况下,您需要保存父项,如果它配置了另一个父项,则保存那个。当最后一个父级(配置有持久存储协调器的父级)被保存时,更改将进入存储。

关于ios - 核心数据更新尝试在 TableView 中显示但不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20795865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com