Swift 如何在线程之间共享NSManagedObject数组

Swift 如何在线程之间共享NSManagedObject数组,swift,core-data,nsmanagedobject,Swift,Core Data,Nsmanagedobject,我有一个将联系人存储到核心数据的应用程序,每次启动时,应用程序都会将这些联系人加载到NSManagedObject数组中。现在,每当我出于某种目的试图读取此数组时,应用程序崩溃,我都会尝试读取整个数组并检查数据差异。问题是这个数组太大了,我想在后台完成这个任务,这样UI就不会被阻塞,但每次我运行代码修改数组中的一些对象时,Xcode都会断言并停止应用程序。我已在scheme中启用-com.apple.CoreData.concurrenceydebug 1标志,以启用多线程相关断言。 现在我如何

我有一个将联系人存储到核心数据的应用程序,每次启动时,应用程序都会将这些联系人加载到NSManagedObject数组中。现在,每当我出于某种目的试图读取此数组时,应用程序崩溃,我都会尝试读取整个数组并检查数据差异。问题是这个数组太大了,我想在后台完成这个任务,这样UI就不会被阻塞,但每次我运行代码修改数组中的一些对象时,Xcode都会断言并停止应用程序。我已在scheme中启用-com.apple.CoreData.concurrenceydebug 1标志,以启用多线程相关断言。
现在我如何在后台完成上述任务

您需要使用适当的NSManagedObjectContext在后台线程中获取此数组。有关详细信息,请查看本教程: