-[__NSDate timeIntervalSinceReferenceDate]:消息发送到释放的实例?

-[__NSDate timeIntervalSinceReferenceDate]: message sent to deallocated instance?

我正在尝试实现日历。我有一个年份标签和两个用于从日历递增和递减年份的按钮。我收到此异常

(-[__NSDate timeIntervalSinceReferenceDate]: message sent to deallocated instance 0x147165f0) 

单击按钮(递增或递减)时,我的要求是,如果我单击右键,我的年份应该增加,如果我单击左键,我的年份应该减少。我的例外行是

date = [cal dateByAddingUnit:NSCalendarUnitYear value:1 toDate:date options:0];

你能帮忙解决这个问题吗?这是我的代码

 - (void)viewDidLoad
    {
        [super viewDidLoad];

        date = [NSDate date];
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"YYYY"];
        NSString *stringFromDate = [formatter stringFromDate:date];
        yar1.text=stringFromDate;

     }
    - (IBAction)right:(id)sender {

        NSCalendar *cal = [NSCalendar currentCalendar];

        date = [cal dateByAddingUnit:NSCalendarUnitYear value:1 toDate:date options:0];
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"YYYY"];
        NSString *stringFromDate = [formatter stringFromDate:date];
        yar1.text=stringFromDate;

       }
 - (IBAction)left:(id)sender {

        NSCalendar *cal = [NSCalendar currentCalendar];

        date = [cal dateByAddingUnit:NSCalendarUnitYear value:1 toDate:date options:0];
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"YYYY"];
        NSString *stringFromDate = [formatter stringFromDate:date];
        yar1.text=stringFromDate;

       }

上面的代码看起来不错,我在示例应用程序中尝试过,它工作正常。你合成了你的日期 属性 了吗?另外请交叉检查您的 属性 是否为强类型。