我正在处理一个NSNumbers数组,我有一种方法可以根据按钮来填充它们;Malloc错误:在OBJC中双倍空闲
- (NSMutableArray *)addNumberToArray:(int)numPressed andWithGuessArray:(NSMutableArray *)guessArray andWithActiveIndex:(int)activeIndex {
NSNumber *numberPressed = [NSNumber numberWithInt:numPressed];
switch (numPressed) {
case 1:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
case 2:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
case 3:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
case 4:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
case 5:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
case 6:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
case 7:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
case 8:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
case 9:
[guessArray replaceObjectAtIndex:activeIndex withObject:numberPressed];
break;
default:
break;
}
[numberPressed release];
for (int i = 0; i < 4; i++) {
NSLog(@"%i",[[guessArray objectAtIndex:i]intValue]);
}
NSLog(@"----");
return guessArray;
}
然后,我必须删除该阵列中的所有数字的方法。
- (void)deleteAll:(id)sender {
NSLog(@"%@",guessArray);
for (int i = 0; i < numbersInAns; i++) {
[guessArray replaceObjectAtIndex:i withObject:[NSNumber numberWithInt:0]];
}
activeIndex = 0;
for (int i = 0; i < 4; i++) {
NSLog(@"%i",[[guessArray objectAtIndex:i]intValue]);
}
}
的问题时,当我填充数组,清除它,再填写一次,并再次尝试清除它。
2011-03-19 13:58:43.492 BombDefusal [4711:207]( 2, 2, 3,)//这是什么其清零前右阵列中,这些都是NSNumbers
BombDefusal(4711,0xa096a540)的malloc:*错误对象0x4e0cc40:双免费 *设置malloc_error_break断点调试
(GDB)打印对象0x4e0cc40
解决
这可能是一个愚蠢的问题,但为什么你使用开关而不是单个if语句? – jonmorgan 2011-03-19 18:16:00
哈哈它曾经是一个必要的开关,但我改变了它,但我没有注意到它现在是额外的代码 – Raplesyrup1 2011-03-19 19:01:15