gpt4 book ai didi

ios - 具有核心数据的主从应用程序

转载 作者:行者123 更新时间:2023-11-29 04:51:18 26 4
gpt4 key购买 nike

从带有 Core Data 的 Xcode 4.2 Master-Detail 模板(适用于 iPad)中,我修改了数据模型并向 nib 文件添加了额外的 TextView 对象。

将数据从托管对象移动到界面对象的代码位于 DetailViewControllerConfigureView 中,并且工作正常。

当我从弹出窗口中的一项移至另一项时,我现在尝试将界面对象数据自动保存到托管对象数据。

我在 DetailViewControllerviewWillDisappear 中添加了保存代码,但这似乎没有触发。我错过了什么吗?

- (void)configureView { // Update the user interface for the detail item.
if (self.detailItem) {
self.sname.text = [self.detailItem valueForKey:@"sname"];
self.saddress.text = [self.detailItem valueForKey:@"saddress"];
}
}


- (void)viewWillDisappear:(BOOL)animated {
[self.detailItem setValue: self.sname.text forKey:@"sname"];
[self.detailItem setValue: self.saddress.text forKey:@"saddress"];

NSError *error; if (![self.detailItem.managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@",error,[error userInfo]);
exit(-1); //fail
}

[super viewWillDisappear:animated];
}

最佳答案

首先,在 MasterDetail 应用程序中,detailViewController 通常始终可见并且不会消失。这就是 viewWillDisappear 没有被调用的原因。当然,我不确定您的应用程序架构的细节,所以我可能是错的。

其次,考虑用户更改某些数据然后切换到另一个应用程序的用例。然后,在其他应用程序中时,系统会终止您的应用程序。您的用户所做的更改将会丢失,并且与他们的预期背道而驰。

除非您要在detailViewController中为界面保存大量数据,否则请考虑在用户更改界面中的数据之后保存数据而不是当用户从到 popoverViewController 中的 ManagedObject 到 ManagedObject。即,当用户在 TextView 或文本字段中编辑某些数据时,在 ManagedObjectContext 上执行保存。

祝你好运!

关于ios - 具有核心数据的主从应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8779289/

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