NSMangagedObjectContext 正在转换为具有数据库路径值的字符串

NSMangagedObjectContext getting a converted to String with a value of the DB path

我有一个使用 dispatch_queue_t 的应用程序,并且在 OS/Device 组合中对大多数用户都运行良好。我有很多线程保持 运行 并有一个 dispatch_queue_t 运行 获取某些数据。为了跟踪线程之间的 NSManagedObjectContexts,我使用了一个 NSDictionary 来跟踪并将 NSManagedObjectContext 映射到正确的线程。

现在问题出在一个很长的 运行 队列上,它用于从服务器获取数据,因此需要时间,字典中的 NSManagedObjectContext 引用更改为一个字符串,其值为指向数据库。

我唯一一次从字典中删除对象是在 threadExit 委托上,所以引用永远不会被删除,只是 NSManagedObjectContext 引用更改为字符串(指向数据库文件)。

这可能是什么原因造成的?

哎呀!愚蠢的疏忽。

在代码深处的某个地方,在将上下文添加到字典后,它正在被释放。现在,为什么上下文更改为字符串而不只是崩溃是一个谜。