Сбои программы при преобразовании NSString в NSDate - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть хороший маленький цикл, и я застрял. Боюсь, что я стал слепым по коду, или это объект слепой? Я не могу сказать ... Мое приложение падает на линии, помеченной -->, и я не понимаю, почему.

    for(int search = 2; search<10; search=search+2) {
    NSString *arrayTime = [searchArray objectAtIndex:search];
    arrayTime = [@" " stringByAppendingString:arrayTime];
    NSString *arrayDate = [currentDate stringByAppendingString: arrayTime];
    --> NSDate *compareTime = [wholeDateTimeFormat dateFromString: arrayDate];
    NSDate *searchCompareTime = [wholeDateTimeFormat dateFromString:searchTime];
    NSLog(@"Start: %@ --- search: %@", compareTime, searchCompareTime);
    float compareResult = [searchCompareTime timeIntervalSinceDate: compareTime];
    NSLog(@"compareReslut: %f", compareResult);     
}

Некоторые пояснения: currentDate отформатирован так: @"yyyy-MM-dd". И wholeDateTimeFormat отформатирован так: @"yyyy-MM-dd HH:mm".

Затем мне нужно преобразовать его в объект NSDate; это где не удается, и я понятия не имею, почему на данный момент. Я виню в этом тот факт, что я заболеваю. :) У меня нет ошибок сборки, и все равно он умирает от меня. Зачем? : D Я благодарен за всю помощь, которую я могу получить.

Ответы [ 2 ]

4 голосов
/ 10 ноября 2010

Просто используйте NSDateFormatter - он делает все это автоматически!

(я собирался попытаться быть более конкретным - но ваш код меня немного запутал).

В любом случае - что-то вроде:

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease]; 
[df setDateFormat:@"YYYY-MM-dd"]; 
NSDate* date = [df dateFromString:@"2010-11-02"];

NSLog(@"Converted date is %@",date);
0 голосов
/ 12 ноября 2010

Хорошо, проблема решена. Проблема выходила за рамки этого кода, и, как я подозревал, я стал слепым. Я попросил друга посмотреть код, и ему потребовалось 2 секунды, чтобы определить проблему.

Я выпустил dateformatters перед циклом for.

Спасибо за все комментарии!

...