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加载器在后台队列/线程中执行任务,那么这可能会导致问题。默认的上下文通常只用于主线程访问。我无法理解,但切换到内存中会修复所有问题。