2011-02-28 45 views
0

我的工作是比較日期值,並設置beggining日期,如果新選擇的日期比dateStart較小,並設置dateEnd如果新選擇的日期比大程序時奇怪的問題dateStart。比較NSDate的價值觀和EXC_BAD_ACCESS錯誤

的代碼效果很好,當我選擇更大的值(在設置dateEnd),但程序崩潰時,我嘗試設置dateStart。繼承人我的代碼:

- (void)setDate:(NSDate *)dateVal 
{ 
    NSComparisonResult result = [dateVal compare:dateStart]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"dd.MM.yyyy 00:00:00"]; 

    switch (result) 
    { 
     case NSOrderedAscending: 
     { 
      dateStart = dateVal; 
      [dateFormatter setDateFormat:@"dd.MM.yyyy 00:00:00"]; 
      [lblDateStart setText:[dateFormatter stringFromDate:dateStart]]; 
     } break; 
     case NSOrderedDescending:{ 
      dateEnd = dateVal; 
      [dateFormatter setDateFormat:@"dd.MM.yyyy 23:59:59"]; 
      [lblDateEnd setText:[dateFormatter stringFromDate:dateEnd]]; 
     } break; 
     case NSOrderedSame: NSLog(@"%@ is the same as %@", dateStart, dateVal); break; 
     default: NSLog(@"erorr dates %@, %@", dateStart, dateVal); break; 
    } 
} 

代碼給出EXC_BAD_ACCESS錯誤在

NSComparisonResult結果= [dateVal 比較:dateStart];

當我請從日曆視圖較小的日期值。

我一直都設置dateStart和dateEnd房產,對他們倆的開頭[[NSDate的頁頭]初始化。請幫忙。

+0

兩件事。你有沒有嘗試過使用殭屍來調試代碼,是否有可能dateVal可能是你之前發佈的東西的指針? – Nicholas1024 2011-02-28 15:50:15

+0

尼古拉斯,我已經通過改變dateStart = dateVal到固定的問題[自setdateStart:dateVal] i的意識到,這是不分配日期有道。感謝您的幫助。 – dreampowder 2011-02-28 16:10:12

回答

1

好的球員,我終於意識到這個問題。

的問題是在這條線:

dateStart = dateVal; 

,但它必須是這樣的:

[self setdateStart:dateVal]; 

感謝,並有一個愉快的一天。