然后重新分配已释放的对象?

时间:2016-06-17 11:49:02

标签: ios objective-c

我正在尝试调试此循环导致我的应用崩溃的问题

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,运行异常,并启用僵尸,但我特别困惑如何对象实例化,然后再实例化?

0 个答案:

没有答案