额外信息:
我有一个消息传递视图,其中UITextView
我将文本保存在draft
的对话变量viewWillDisappear
中。
当应用尝试刷新用户的访问代码时,他们可能会收到“无法刷新”的响应,并且应用会将用户注销(此应用中一次只能登录一台设备)。
在注销方法中,我删除了所有应用设置并清空了核心数据,然后我设置了新的rootViewController
并执行了makeKeyAndVisible
。
问题:
现在您知道这一切,设置rootViewController
来电viewWillDisappear
,然后又尝试在核心数据中不再存在的对话中设置draft
变量...
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
设置草稿时,最简单,最快速的解决方法是:
makeSound
如果if let context = conversation.managedObjectContext {
// you have a valid conversation, you can assign the draft
}
为managedObjectContext
,则表示该对象已从核心数据中删除。
修改强>
此answer提供了一种更好的方法来检测是否已从Core Data中删除托管对象。
我建议你重新考虑整个注销(清理资源)的方法,因为你的将来不会扩展。