我正在尝试调试此循环导致我的应用崩溃的问题
for( int i = 0; i < 300; i++ ) {
NSDate *thisDate = [[NSDate date] dateBySubtractingDays:i];
NSLog(@"here is the date: %@", thisDate);
NSLog(@"1. here is the class of objects by day keys %@", [objectsByDayKeys class]);
[objectsByDayKeys addObject:[[DateFormatterManager sharedManager] yyyyMMddStringFromDate:thisDate]];
NSLog(@"2. here is the class of objects by day keys %@", [objectsByDayKeys class]);
}
我有一个可重复的错误,objectByDayKeys
已被解除实例化(启用的僵尸),当这个for循环运行时,它会在某个时刻出现。奇怪的是,这并不总是导致崩溃(当它崩溃时发生EXC_BAD_ACCESS code = 1
崩溃)。 for循环继续运行,有时候很好。
偶尔我会得到而不是释放错误,数组objectsByDayKeys
现在是一个字符串的错误(从addObject
获取NSString unrecognizedSelector错误)。
我们通过不经常调用封闭方法(它被称为LOT)来解决这个问题,这解决了问题,但我想知道这是什么类型的错误以及我如何能够做更好的故障排除。我尝试了Build-and-Analyze,运行异常,并启用僵尸,但我特别困惑如何对象实例化,然后再实例化?