Странная проблема при сравнении значений NSDate и ошибки EXC_BAD_ACCESS - PullRequest
0 голосов
/ 28 февраля 2011

Я работаю над программой, которая сравнивает значения даты и устанавливает начальную дату, если вновь выбранная дата меньше, чем dateStart, и устанавливает dateEnd, если вновь выбранная дата больше, чем dateStart.

код работает хорошо, когда я выбираю большие значения (при установке 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 result = [dateVal Compare: dateStart];

при выбоременьшее значение даты в представлении календаря.

Я одновременно установил dateStart и dateEnd в качестве свойства и [[NSDate alloc] init] для них обоих в начале.пожалуйста, помогите.

1 Ответ

1 голос
/ 28 февраля 2011

хорошо, ребята, я наконец понял проблему.

Проблема была в этой строке:

dateStart = dateVal;

но это должно быть так:

[self setdateStart:dateVal];

Спасибо и хорошего дня

...