访问UIDatePicker时EXC_BAD_ACCESS

我想从我的DatePicker中读取值并将其存储在我的单例中,但在尝试执行此操作时遇到exception。

这里是单例界面:

@interface Helper : NSObject { NSMutableArray *array; //Information For Filter page NSMutableArray *towns; NSMutableArray *types; //Shared resources to apply filters NSDate *toDate; NSDate *fromDate; NSString *selectedType; NSString *selectedTown; //Shared resource of which button was clicked int clicked; int clickedCell; int clickedContext; } @property (nonatomic, retain) NSMutableArray *array; @property (nonatomic, retain) NSMutableArray *towns; @property (nonatomic, retain) NSMutableArray *types; @property (nonatomic) int clicked; @property (nonatomic) int clickedCell; @property (nonatomic) int clickedContext; @property (nonatomic, retain) NSDate *toDate; @property (nonatomic, retain) NSDate *fromDate; @property (nonatomic, retain) NSString *selectedType; @property (nonatomic, retain) NSString *selectedTown; +(id)sharedManager; @end 

这是发生exception的function

 -(void) viewWillDisappear:(BOOL)animated { Helper *myHelper = [Helper sharedManager]; if(myHelper.clickedContext == 0) { if(myHelper.clickedCell == 0) { //causes exception myHelper.fromDate = [self.fromDatePicker date]; } else { //causes exception myHelper.toDate = [self.toDatePicker date]; } } else { if(myHelper.clickedCell == 0) { myHelper.selectedTown = [myHelper.towns objectAtIndex:[self.townPicker selectedRowInComponent:0]]; } else { myHelper.selectedType = [myHelper.types objectAtIndex:[self.typePicker selectedRowInComponent:0]]; } } [super viewWillDisappear:animated]; } 

申报人的声明

 @property (nonatomic, retain) IBOutlet UIDatePicker *toDatePicker; @property (nonatomic, retain) IBOutlet UIDatePicker *fromDatePicker; @property (nonatomic, retain) IBOutlet UIPickerView *typePicker; @property (nonatomic, retain) IBOutlet UIPickerView *townPicker; 

@synthesize部分

 @synthesize typePicker, toDatePicker, fromDatePicker, townPicker, townsView, toDateView, typesView, fromDateView; 

任何想法是为什么?

谢谢

如果您的sockets未在界面生成器中分配,则可能发生这种情况。

如果您认为是这样,请尝试使用NSZombieEnabled = YES运行应用程序,然后查看是否收到任何错误消息。

我发现了这个问题。 在我的帮手类,我应该分配不保留。 所以应该是

 @property (nonatomic, assign) NSDate *toDate; @property (nonatomic, assign) NSDate *fromDate;