Приложение вылетает, когда вид контроллера выталкивается из контроллера навигации - PullRequest
0 голосов
/ 14 октября 2011

Я помещаю объект в контроллер навигации, но когда я возвращаю элемент управления из этого контроллера представления, он вызывает сбой приложения.

[self.navigationController pushViewController:chequeDetails animated:YES];
        [chequeDetails release];

, но когда я пишу тот же код с

[self.navigationController pushViewController:chequeDetails animated:YES];
 chequeDetails=nil;
[chequeDetails release];

Приложение не падает, но наблюдается небольшая задержка ... когда я возвращаюсь из контроллера сведений о проверке?

Ответы [ 2 ]

0 голосов
/ 14 октября 2011

Если ваши секунды выходят из кода, вы не отпускаете chequeDetails, так как вызов release для нулевого объекта не делает ничего:

[self.navigationController pushViewController:chequeDetails animated:YES];
 chequeDetails=nil;
// calling the release on nill will do nothing
[chequeDetails release];

Обычно вы можете сделать это следующим образом:

[self.navigationController pushViewController:chequeDetails animated:YES];
[chequeDetails release], chequeDetails = nil;

Но отпустите chequeDetails только если вы сделали выделение, init вроде:

ChequeDetails *chequeDetails = [[ChequeDetails alloc] initWithNibName:@"ChequeDetails" bundle:nil];

Таким образом, полный код должен выглядеть примерно так:

ChequeDetails *chequeDetails = [[ChequeDetails alloc] initWithNibName:@"ChequeDetails" bundle:nil];
[self.navigationController pushViewController:chequeDetails animated:YES];
[chequeDetails release], chequeDetails = nil;
0 голосов
/ 14 октября 2011

Я не знаю Exat ... но я думаю, что вам нужно создать объект вашего делегата, и вам нужно написать appDelegate.navigationController, а не self.navigationController ...

Примечание: appDelegate является объектом Delegate.

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