изменить вид ошибки - PullRequest
       4

изменить вид ошибки

0 голосов
/ 22 мая 2011

Привет, когда я переключаюсь с одного представления на другое, я делаю:

-(void)goInGame {

InGameViewController = [[InGameView alloc] initWithNibName:@"InGameView" bundle:nil];
[self presentModalViewController:self.InGameViewController animated:NO];
[InGameViewController release];

}

Однако, таким образом, счетчик сохранения InGameViewController равен «0», но счет сохранения InGameView равен «-1».и иногда вылетает

ошибка: завершение приложения двумя исключениями Uncaught «NSInternalInconsistencyException», причина: «Не удалось загрузить NIB пакета:« NSBundle <.... app> (загружен) »с именем« InGameView »

где я не прав?

спасибо!

1 Ответ

1 голос
/ 22 мая 2011

Я не понимаю, почему вы хотите явно освободить свой контроллер. Попробуйте удалить строку [InGameViewController release]; и посмотрите, решит ли это вашу проблему.

Для получения дополнительной информации ознакомьтесь с Правилами управления памятью Apple , а также За кулисами: оставьте счет в Руководстве по программированию управления памятью , в котором говорится, что

Если количество сохраняемых объектов уменьшается до 0, он освобождается (см. «Выделение объекта»).

Кроме того, * * 1016

Важно: как правило, должно быть нет причин явно задавать объект каково его количество (см. retainCount). Результат часто вводит в заблуждение, поскольку вы можете не знать о какие каркасные объекты сохранились объект, в котором вы заинтересованы. При отладке проблем управления памятью, вы должны быть обеспокоены только убедитесь, что ваш код придерживается правила собственности.

Ваше приложение аварийно завершает работу, потому что оно пытается получить доступ к вашему контроллеру представления, который уже был освобожден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...