【发布时间】:2011-03-24 03:21:04
【问题描述】:
我有一个相当简单的 Core Data 应用数据模型。基本上,我在提出 已在手机上的联系人列表。当用户点击联系人时,他们会被带走 到详细视图屏幕,他们可以在其中选择电话号码或电子邮件地址。当他们 选择任何细节项,我通过 Core Data 存储它。
我有一个实体叫Contact,另一个叫Contact_Detail。
联系方式> Contact_Detail
与 Contact_Detail 的 Contact 关系具有 Deny 删除规则。 Contact_Detail 与 Contact 的关系有一个 No Action 的删除规则。
如果用户想要删除之前选择的详细信息项,我首先获取
与联系人具有相同 ID 的 Contact_Detail 对象。如果只有一个 Contact_Detail
返回对象,然后我知道我还需要从联系人实体中删除联系人。如果有
如果返回了多个 Contact_Detail 对象,我只需删除该特定对象。
一切正常,数据库按预期更新(删除了详细对象,当 特定联系人的最后一个细节对象被删除,联系人也是如此)只要我来回走动 在 peoplePicker 和 peopleDetailViewController 之间。
我遇到的问题是,当我选择一个电子邮件地址时,离开 detailVC,离开 peoplePicker,然后
回到peoplePicker,回到同一个联系人,然后取消选择我之前的电子邮件地址
选中后,Core Data 会抛出一个看起来好像无法删除我的 Contact 的错误,因为有
仍然是关系对象(Contact_Detail):
我可以验证Contact_Detail 对象确实被删除了。为什么无法删除联系人?以及为什么
这是否只发生在特定的导航序列中?
如果我应该发布一些代码,请告诉我。我认为这个问题导致我在抛出第一个错误后继续使用 Core Data 后看到的崩溃。
谢谢!
【问题讨论】:
标签: iphone objective-c ios core-data