Что за саркастическая ошибка это iOS?

У меня есть код, который я использую для сортировки календарных дат, который выглядит следующим образом:

#if !(TARGET_IPHONE_SIMULATOR)
    NSString *formatString = [NSDateFormatter dateFormatFromTemplate:@"HH:mm dd MMM yyyy" options:0
                                                              locale:[NSLocale currentLocale]];
    [fmt setDateFormat:formatString];
#else
    [fmt setDateFormat:@"HH:mm dd MMM yyyy"];
#endif

Если я запускаю его в симуляторе, все в порядке. Если я запускаю его на устройстве, я получаю это саркастическое отладочное сообщение.

2012-09-19 22: 40: 13.972 APPNAME [4923: 907] * - [__ NSCFCalendar компоненты: fromDate:]: дата не может быть ноль

Я имею в виду на самом деле, что вы думаете, что операция должна означать с нулевой датой?

На данный момент исключение исключено.

О некоторых из этих ошибок будет сообщено в этой жалобе, тогда дальнейшие нарушения будут просто молча делать любые случайные вещи, получаемые с нуля. Вот обратный след, где это произошло в этот раз (некоторые кадры могут отсутствовать из-за оптимизации компилятора):

Вы должны смеяться над этим, но яЯ не уверен, что не так с моимdateFormatFromTemplate: код. Любая помощь будет оценена.

Запуск Xcode V 4.5 между прочим

ОБНОВИТЬ:

Backtrace:

0 CoreFoundation 0x39ff0e55 + 84

1 APPNAME 0x00040be1 - [MeetingsViewController dateAtBeginningOfDayForDate:] + 140

Так что я думаю, что все идет плохо в моемdateAtBeginningOfDayForDate метод. Который выглядит так:

/*
 Break down a given NSDate to its bare components for sorting
 */
- (NSDate *)dateAtBeginningOfDayForDate:(NSDate *)inputDate
{
    // Use the user's current calendar and time zone
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSTimeZone *timeZone = [NSTimeZone systemTimeZone];
    [calendar setTimeZone:timeZone];

    // Selectively convert the date components (year, month, day) of the input date
    NSDateComponents *dateComps = [calendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:inputDate];

    // Set the time components manually
    [dateComps setHour:0];
    [dateComps setMinute:0];
    [dateComps setSecond:0];

    // Convert back
    NSDate *beginningOfDay = [calendar dateFromComponents:dateComps];
    return beginningOfDay;
}

Я использую этот метод, чтобы сломать заданную NSDate к его ' основные компоненты, чтобы я мог сортировать их все более эффективно. Тем не менее, мое приложение должно быть международным, что является причиной использованияNSLocale форматировать вывод даты. Из того, что кажется мне нужно будет изменить мойdateAtBeginningOfDayForDate работать на международном уровне, а также.

Ответы на вопрос(2)

Ваш ответ на вопрос