为什么MagicalRecord中的截断操作会非常慢?我需要从数据库中删除两种类型的所有对象,这就是我现在正在做的事情:
dispatch_async(dispatch_get_main_queue(), ^{
NSManagedObjectContext *localContext = [NSManagedObjectContext contextForCurrentThread];
[Term MR_truncateAllInContext:context];
[Group MR_truncateAllInContext:context];
});
第一次截断总是很快,但第二次截断可能需要20秒甚至更长时间。数据库中有6个组,大约6000个术语,但没关系,因为即使你切换这些操作的顺序,第一个总是很快,第二个总是很慢。据我所知,这段时间的操作是
results = [context executeFetchRequest:request error:&error];
位于“NSManagedObject + MagicalRecord.m”文件中。我能做错什么?我已经尝试将截断放在一个全局队列中,使用不同的上下文并将MagicalRecord更新为3.0 beta版本(我现在使用的是2.2版本),但它没有帮助。 在执行此代码期间,数据库不会发生任何操作。如果您有任何想法请帮助,因为这个错误对我没有任何意义。我在测试时一直在使用Xcode 6.1.1和iOS 8.1模拟器。