Программа получила сигнал: "EXC_BAD_ACCESS"

У меня есть строковая переменная, которая хранит дату из средства выбора даты, но когда я использую ее значение в другой функции, я получаю сообщение об ошибке, похожее на сигнал, полученный программой: "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 ответа

Решение

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

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

Всякий раз, когда происходит сбой, опубликовать обратную трассировку.

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

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

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

Другие вопросы по тегам