用户注销时处理块执行(在核心数据中保存图像的块)

时间:2013-05-05 03:36:15

标签: ios objective-c core-data grand-central-dispatch

这就是我在项目中所做的事情 用户使用facebook登录,一旦成功登录,应用程序开始从后台队列中的服务器下载所有图像。我已经将图像保存到块中的核心数据并将块提交到后台队列,这样主线程就不会被阻塞。

问题: 一旦用户登录,他就会进入设置屏幕,从那里他退出应用程序。此时,队列中可能存在块,并且它们将执行将图像保存到核心数据。我的应用程序由于未捕获的异常而崩溃 * 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无法从此NSManagedObjectContext的协调器访问对象的持久存储。

当我退出时,我清除应用程序的持久存储和协调器。这些是应用程序的全局对象。但我不确定为什么会发生这种崩溃?

由于

1 个答案:

答案 0 :(得分:0)

此问题已得到修复。问题是由于当用户点击注销时清除应用商店。当它被清除时,队列中可能存在一些仍在执行的blcoks,当他们尝试将图像保存到核心数据时,应用程序会崩溃。现在我已经修复了这个购买添加清除存储作为块的一部分并提交到相同的队列,以便一旦所有块从队列中克服,存储就会被清除。