Core Data 在切换视图时使属性为 NULL

Posted

技术标签:

【中文标题】Core Data 在切换视图时使属性为 NULL【英文标题】:Core Data Makes attribute NULL when switching views 【发布时间】:2012-11-27 04:02:10 【问题描述】:

我有四种观点。

视图 1,显示带有添加按钮的表格视图。 (添加按钮不可见,它在屏幕截图边界之上)

View 2(按下添加按钮时显示)允许用户输入他们想要添加的表格视图单元格的数据。 一旦按下save 按钮,新单元格就会添加到视图中。

查看 3 如果用户想编辑一个单元格,他们只需点击该单元格。这个视图只允许用户编辑已经在表格中的单元格。

但是当我简单地将视图 4 放在视图 1(表格视图)和 3(单元格编辑器视图)之间时,属性/标签会显示null,其中应该显示用户输入。但是,当我从视图 1 和视图 3 之间删除视图 4 时,该应用程序再次完美运行。有什么理由吗?

我只是通过以下方式切换视图:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];

View3 * three = (View3 *) [storyboard instantiateViewControllerWithIdentifier:@"view3VC"];

View4 * four = (View4 *) [storyboard instantiateViewControllerWithIdentifier:@"view4VC"];

[tableView deselectRowAtIndexPath:indexPath animated:YES];

three.managedObjectContext = self.context;

MyEntityClass *entity = [self.tableArray objectAtIndex:indexPath.row];

three.3entity = entity;

[self presentViewController:four animated:YES completion:nil];


【问题讨论】:

你没有提到 view4 的用途 这个视图并不是一个完整的产品。我只是想解决这个问题,因为我最终需要在应用程序中添加第四个视图!所以,我只是在视图上扔了一个按钮来演示问题! 【参考方案1】:

这有点令人困惑,但我想我会尽力帮助你。

在您的代码中:

MyEntityClass *entity = [self.tableArray objectAtIndex:indexPath.row];
three.3entity = entity;

您说调用 view3 时它可以工作,我猜是因为您已将实体分配给 view3。

但是如果你像这样呈现 view4,你并没有给它分配任何东西。

View4 * four = (View4 *) [storyboard instantiateViewControllerWithIdentifier:@"view4VC"];

[self presentViewController:four animated:YES completion:nil];

现在 view4 是一个全新的空视图控制器。它在您的标签中显示null 并不奇怪。

尝试以与 view3 完全相同的方式修复它。

【讨论】:

以上是关于Core Data 在切换视图时使属性为 NULL的主要内容,如果未能解决你的问题,请参考以下文章

显示模态视图时使 iPhone 状态栏消失?

使用 Core Data 的主/详细视图

在 Core Data 中更改托管对象模型的属性值时崩溃

从 Core Data 非标量属性更新 SwiftUI 视图

如何切换到将 Core Data 用于简单的 UITableView 而不是 NSArray?

Swift Core Data:Core Data 中的枚举 [重复]