我有一个非常简单的方法来创建一个对象。
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_defaultContext];
NSDate *today = [NSDate date];
NSInteger dayID = [[[self periodFormatter] stringFromDate:today] integerValue];
CDDay *dDay = [CDDay MR_createInContext:localContext];
dDay.dayID = @(dayID);
[localContext MR_saveToPersistentStoreAndWait];
这就是它的全部功能,它适用于我在iPhone 3,4和5上进行的所有单元测试,压力测试和自动化测试,但是当100k +用户安装它时,我遇到了App Store,我从这种方法中遇到了大约500次崩溃。 / p>
我在主线程和后台线程中都试过了,同样的问题。它只需要几毫秒,它只被调用一次。
以下是来自崩溃的线程的日志
1 libobjc.A.dylib objc_msgSend + 5
2 libobjc.A.dylib objc_object::sidetable_release(bool) + 172
3 libobjc.A.dylib (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 356
4 CoreFoundation _CFAutoreleasePoolPop + 16
5 Foundation -[NSAutoreleasePool drain] + 120
6 CoreData -[NSManagedObjectContext save:] + 942
7 ****** __70-[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:]_block_invoke3 (NSManagedObjectContext+MagicalSaves.m:64)
8 CoreData developerSubmittedBlockToNSManagedObjectContextPerform + 86
我知道MR在嵌套上下文中遇到了一些问题,但这与默认上下文有关。感觉就像我必须摆脱MR。