iPhone forms, where do you put your validation?
人们建议我直接将我的文本字段的值放在我的核心数据实体中,这是我做的(参见我的第二次编辑)。事情是,当一个人更新实体时,因为我直接放入用户在我的实体中键入的值,即使我不保存我的ManagedObjectContext,我的TableViewController(使用NSFRC)也会更新用户输入的最新信息(即使他按下取消)。如果我重新启动应用程序,因为它没有保存,一切都恢复正常。
我该如何避免这种情况?
答案 0 :(得分:4)
我假设您对两个viewControllers使用相同的NSManagedObjectContext
。您可以为每个viewController使用单独的NSManagedObjectContext
。如果您使用的是iOS 5.1,请将第一个viewController的managedObjectContext(MOC)设置为第二个viewControllers managedObjectContext的父级。因此,如果您通过[theContext save]
保存第二个视图的MOC,它将自动将更改与第一个MOC合并。如果您不想保留更改,只需将该视图从导航堆栈中弹出即可。
MOC是scratchpad。所以实质上你想要使用第二个viewController作为便笺簿,直到你点击保存。