我有一个字符串变量,它存储日期选择器的日期,但是当我在其他函数中使用它的值时,我收到类似程序接收信号的错误:“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);
}
}
答案 0 :(得分:5)
您必须保留该字符串。这是最可能的原因。
编辑: 崩溃的唯一原因是糟糕的指针。坏指针=过度释放对象。只需在启用僵尸的情况下运行您的应用,您就会看到您正在执行该操作的位置。请检查此http://www.markj.net/iphone-memory-debug-nszombie/
答案 1 :(得分:3)
每当发生崩溃时,请发布回溯。
在此之前,请使用“构建和分析”并修复它识别出的任何问题。
在这样做之后,如果它仍然崩溃,那么在Zombie检测上进行一次传递,看看你是否过度释放某些东西(很可能,该代码有明显的过度释放问题)。
如果仍然崩溃,那么我们需要查看更多代码....