程序收到信号:“EXC_BAD_ACCESS”

时间:2011-03-02 04:46:01

标签: iphone objective-c 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 个答案:

答案 0 :(得分:5)

您必须保留该字符串。这是最可能的原因。

编辑: 崩溃的唯一原因是糟糕的指针。坏指针=过度释放对象。只需在启用僵尸的情况下运行您的应用,您就会看到您正在执行该操作的位置。请检查此http://www.markj.net/iphone-memory-debug-nszombie/

答案 1 :(得分:3)

每当发生崩溃时,请发布回溯。

在此之前,请使用“构建和分析”并修复它识别出的任何问题。

在这样做之后,如果它仍然崩溃,那么在Zombie检测上进行一次传递,看看你是否过度释放某些东西(很可能,该代码有明显的过度释放问题)。

如果仍然崩溃,那么我们需要查看更多代码....