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的主要内容,如果未能解决你的问题,请参考以下文章
从 Core Data 非标量属性更新 SwiftUI 视图