Iphone EXC_访问UIDatePicker时访问错误

Iphone EXC_访问UIDatePicker时访问错误,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我想从我的DatePicker中读取值并将其存储在我的singleton中,但在尝试执行此操作时出现异常 以下是singleton接口: @interface Helper : NSObject { NSMutableArray *array; //Information For Filter page NSMutableArray *towns; NSMutableArray *types; //Shared resources to apply filters NSDate *toDate;

我想从我的DatePicker中读取值并将其存储在我的singleton中,但在尝试执行此操作时出现异常

以下是singleton接口:

@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
这是发生异常的函数

-(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 typePicker, toDatePicker, fromDatePicker, townPicker, townsView, toDateView, typesView, fromDateView;
知道原因吗


谢谢

如果您的插座未在interface builder中分配,则可能会发生这种情况


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

我发现了问题。在我的Helper类中,我应该分配not retained。所以应该是这样

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

如果没有datepicker对象的声明,则无法判断任何内容。是否确实已将此属性链接到IB中的选择器?看起来UIDatePicker是错误的指针。确保发布的唯一位置是dealoc。@Joe即使我取消了所有dealoc和release的注释,我仍然会得到exception@jamapag是的,我已经检查过了,我不确定这是解决你问题的正确方法。分配任务时,您可能会在稍后访问时创建新问题。@Joe如果我遇到更多与此相关的问题,我将更新此问题。感谢+1 NSZombieEnabled-错误访问几乎总是访问已释放的对象