检测核心数据的删除

时间:2015-05-19 12:12:17

标签: ios swift core-data appdelegate

额外信息:

我有一个消息传递视图,其中UITextView我将文本保存在draft的对话变量viewWillDisappear中。

当应用尝试刷新用户的访问代码时,他们可能会收到“无法刷新”的响应,并且应用会将用户注销(此应用中一次只能登录一台设备)。

在注销方法中,我删除了所有应用设置并清空了核心数据,然后我设置了新的rootViewController并执行了makeKeyAndVisible

问题:

现在您知道这一切,设置rootViewController来电viewWillDisappear,然后又尝试在核心数据中不再存在的对话中设置draft变量...

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:2)

设置草稿时,最简单,最快速的解决方法是:

makeSound

如果if let context = conversation.managedObjectContext { // you have a valid conversation, you can assign the draft } managedObjectContext,则表示该对象已从核心数据中删除。

修改

answer提供了一种更好的方法来检测是否已从Core Data中删除托管对象。

我建议你重新考虑整个注销(清理资源)的方法,因为你的将来不会扩展。