【发布时间】:2013-06-20 07:33:03
【问题描述】:
首先,让我解释一下我要完成的工作。我有一个带有 MasterViewController 和 EditViewController 的主从应用程序。 MasterViewController 包含一个添加按钮和一个列出核心数据实体的表格。当用户点击表格行或添加按钮时,应该会弹出编辑视图。我对如何以不同方式处理编辑和添加感到困惑。
这是我目前的做法:我的应用程序使用 Storyboards,所以我有 editEntity 和 addEntity 从 Master 到 Edit。两个 segue 都将一个实体传递给 EditViewController,但 editEntity 根据所点击的行找到一个现有实体,而 addEntity 创建一个新实体。两个 segue 都在实体上设置了 isNew 瞬态属性。
EditViewController 对 Core Data 一无所知——它只是编辑它给定的实体。它又具有done 和cancel 展开操作。 MasterViewController 在考虑cancel 时会查看isNew 属性——如果实体是新的,它会删除它,如果它已经存在,它根本不应用更改。
这可行,但它有几个问题。首先,向实体添加额外属性似乎有点麻烦。其次,如果用户在编辑新实体时在 Edit 视图中关闭了应用程序,该实体不会被删除,这肯定是出乎意料的。最重要的是,这似乎是一个核心数据本身必须有解决方案的问题——我只是不知道如何解决。非常感谢!
【问题讨论】: