Я не уверен, что вы пытаетесь достичь с помощью этого кода, так как объявленный массив всегда будет "ноль", когда вы входите в цикл.Я предполагаю, что у вас раньше происходило больше вещей, и в этом случае вы должны сделать это следующим образом:
-(void)whatever {
NSMutableArray *array = nil;
for(int i = 0; i < 10; i++) {
if(array){
[array release];
array = nil;
}
array = [[NSMutableArray alloc] init];
// Add things to the array and do stuff with those things before starting over
}
if ([array count] > 0) {
// Do something else
}
}
При освобождении объекта (и вы УВЕРЕНЫ, что его счет сохранения достигнет 0 и, следовательно,на самом деле он удаляется), тогда вы должны установить array
на ноль, поскольку даже если объект освобожден, переменная array
является просто указателем на адрес памяти, на котором находился объект до его удаления, и не будетnil.
Кроме того, при объявлении переменной выполните NSMutableArray *array = nil;
, поскольку в противном случае это может быть просто любой нежелательный адрес в стеке, который не будет иметь значение nil в предложении if.