В моей игре «connect4» у меня есть массив, представляющий сетку 7x6, каждая «ячейка» в массиве содержит либо NSNull, либо подкласс UIView «CoinView». Является ли следующий способ удаления объектов из NSMutableArray и основного вида?Правильное удаление объектов из вида и массива?
- (IBAction)debugOrigin:(id)sender {
int x = 0;
int y = 0;
//get the coin object form the grid
CoinView *coin = [[grid objectAtIndex:x] objectAtIndex:y];
//cancel if there's no coin there
if ([coin isKindOfClass:[NSNull class]]) { return; }
//remove the coin from memory
[coin removeFromSuperview];
coin = nil;
[[grid objectAtIndex:x] setObject:[NSNull null] atIndex:y]; //will this leak?
}
Спасибо!
Если вы используете ARC, это должно быть хорошо. Использование [array setObject: atIndex] удаляет из массива любые предыдущие объекты, которые автоматически освобождают его за кулисами. Если CoinView удерживается в другом месте, он все равно будет существовать, но по той же самой причине это не утечка, потому что что-то еще будет ссылаться на него. – CrimsonDiego