Помощь Устранение неполадок NSZombie Сообщение об ошибке - PullRequest
0 голосов
/ 20 октября 2010

У меня есть модальный контроллер вида, который вылетает, когда сам себя закрывает.Ошибка EXC_BAD_ACCESS (да).Я пытаюсь использовать NSZombie для решения проблемы.Я получаю следующее:

2010-10-20 17: 15: 58.936 [24058: 207] Пусковое устройство AddRunningClient на ненулевом количестве клиентов 2010-10-20 17: 16: 06.846 [24058:207] * - [ViewController retain]: сообщение отправлено на освобожденный экземпляр 0x6c2d4a0

Что это значит - означает ли это, что сообщение было отправлено Viewcontroller или что сообщение было отправленообъект в Viewcontroller?

Я действительно застрял, поскольку поток кажется основным: (

Заранее благодарим всех за любую помощь,

Мартин

РЕДАКТИРОВАТЬ

Спасибо всем за быстрые ответы. Вот как я представляю контроллер вида:

-(IBAction)letsstartGame {

ViewController * sl = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]];  
self.viewLink = sl;
[sl release];

[mainMenu stop];
[mainMenu setCurrentTime:0.0];

[self presentModalViewController:viewLink animated:NO];

[viewLink release];
self.viewLink = nil;

}

И отклоняю так:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

if (waitingOver) {

    [backgroundMain stop];
    [fireworks stop];

    [self dismissModalViewControllerAnimated:NO];

}   

}

Ответы [ 3 ]

2 голосов
/ 20 октября 2010

Это означает, что у вас есть экземпляр объекта типа ViewController, он был освобожден, а затем вы попытались retain его.

редактировать

Вы чрезмерно отпускаете объект. Вот что вы делаете:

ViewController * sl = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]];  //allocated, has a +1 retain count
self.viewLink = sl;  //assuming a retain property, has a +2 retain count
[sl release]; //releasing, now has +1 retain count
....    
[viewLink release]; //releasing, now has a 0 retain count
self.viewLink = nil; //attempting to release stale pointer, will result in a crash (perhaps not immediately, but eventually)

Избавьтесь от линии [viewLink release]. Это неправильно иметь это там.

1 голос
/ 20 октября 2010

Сообщение в основном говорит о том, что вы пытаетесь отправить сообщение (вызвать функцию) на / на объект, который уже был освобожден (освобожден и память освобождена).Если бы вы могли отправить больше кода, я мог бы попытаться определить, почему.

1 голос
/ 20 октября 2010

Это означает, что вы отправляете сообщение освобожденному экземпляру.Так что где-то в вашем коде вы не смогли сохранить объект (возможно, ViewController) или преждевременно освободили его.

Если вы можете опубликовать свой код там, где вы создаете View Controller, который может оказаться полезным для отладки.1003 *

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