Программа получила сигнал: «EXC_BAD_ACCESS» - PullRequest
4 голосов
/ 02 марта 2011

У меня есть строковая переменная, в которой хранится дата из средства выбора даты, но когда я использую ее значение в другой функции, я получаю сообщение об ошибке, похожее на сигнал, полученный программой: «EXC_BAD_ACCESS». Примечание: переменная определяется глобально.

код:

    - (void) changedDate: (UIDatePicker *) picker 
    {
     if (appDelegate.dateint == 8)
     {
     NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 

[dateFormatter setDateFormat:@"dd MMM, yyyy"];
     datestr=[dateFormatter stringFromDate:[dptpicker date]]; 
    NSLog(@"date:%@",datestr); 
    } 
    else if(appDelegate.dateint == 9) 
    { NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 

[dateFormatter setDateFormat:@"dd MMM, yyyy"]; 
    datestr1=[dateFormatter stringFromDate:[dptpicker date]] ;
     NSLog(@"date1:%@",datestr1);
     } 
    }

Ответы [ 2 ]

5 голосов
/ 02 марта 2011

Вы должны сохранить эту строку. Это наиболее вероятная причина.

Edit: Единственная причина сбоя - плохой указатель. Плохой указатель = чрезмерное освобождение объекта. Просто запустите свое приложение с включенными зомби, и вы увидите место, где вы это делаете. Проверьте это http://www.markj.net/iphone-memory-debug-nszombie/

3 голосов
/ 02 марта 2011

При возникновении сбоя публикуйте обратную трассировку.

Перед тем, как сделать это, используйте «построить и проанализировать» и исправить все обнаруженные проблемы.

После этого, если это все еще дает сбой, сделайте проход с включенным обнаружением зомби и посмотрите, не перевыпускаете ли вы что-то (что, вероятно, в том, что у кода есть очевидная проблема перевыпуска, как есть).

Если это все еще сбой, то нам нужно увидеть больше кода ....

...