我是iOS的新手,我目前正在为我的应用设计“创建新活动”页面。
一些信息:
来自铁路背景,我习惯于做以下事情:
但是,我不认为Core Data有一个API允许开发人员在不保存的情况下创建实体。目前,我正在做这样的事情:
检查是否按下取消的代码。
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if (![[self.navigationController viewControllers] containsObject:self]) {
说实话这有点复杂。你们有更好的建议吗?
答案 0 :(得分:3)
它实际上就像你描述的Rails一样工作:在你提交它们之前,新对象不会保存到持久存储中(通过NSManagedObjectContext
的{{1}}方法)。
查看Creating and Deleting Managed Objects section的Core Data Programming Guide。摘录...
简单地创建托管对象不会导致它被保存到 持久存储。托管对象上下文充当暂存器。您 可以用它创建和注册对象,对对象进行更改, 并根据需要进行撤消和重做更改。如果您对托管进行了更改 与给定上下文关联的对象,这些更改保持在本地 在您通过发送上下文a提交更改之前的上下文 保存:消息。那时 - 只要没有验证 错误 - 更改将提交给商店。