Ios MagicalRecord多次截断,“;则无法找到临时oid的数据“;

Ios MagicalRecord多次截断,“;则无法找到临时oid的数据“;,ios,objective-c,core-data,magicalrecord,xctest,Ios,Objective C,Core Data,Magicalrecord,Xctest,在每次测试之前,我都会尝试擦除数据并重新创建装置。应用程序每次点击MR_savetopersistentstore并等待时就会崩溃,但是使用无法找到临时oid的数据 [A MR_truncateAll]; [B MR_truncateAll]; [C MR_truncateAll]; [[FixtureLoader instance] loadDataInContext:[NSManagedObjectContext MR_defaultContext]]; [[NSManagedObjectC

在每次测试之前,我都会尝试擦除数据并重新创建装置。应用程序每次点击
MR_savetopersistentstore并等待时就会崩溃
,但是使用
无法找到临时oid的数据

[A MR_truncateAll];
[B MR_truncateAll];
[C MR_truncateAll];
[[FixtureLoader instance] loadDataInContext:[NSManagedObjectContext MR_defaultContext]];
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

为什么会发生这种情况?

与其在测试中截断,不如使用内存中的存储,并在每次测试后转储存储。你不会经历崩溃,而且会更快

- (void)setUp {
    [super setUp];

    [MagicalRecord cleanUp];
    [MagicalRecord setupCoreDataStackWithInMemoryStore];
}

很公平,这是个好主意,我一定会这么做,但是是什么导致了撞车呢?有什么根本性的问题吗?如果你的fixture加载器在后台队列/线程中执行任务,那么这可能会导致问题。默认的上下文通常只用于主线程访问。我无法理解,但切换到内存中会修复所有问题。