Программа получила сигнал: "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/
Всякий раз, когда происходит сбой, опубликовать обратную трассировку.
Прежде чем сделать это, используйте "построить и проанализировать" и исправить все проблемы, которые он определяет.
После этого, если он все еще дает сбой, сделайте проход с включенным обнаружением зомби и посмотрите, не перевыпускаете ли вы что-то (что, вероятно, в том, что у кода есть очевидная проблема перевыпуска, как есть).
Если он все еще падает, то нам нужно увидеть больше кода....