2010-11-10 2 views
0

У меня есть симпатичная маленькая петля, и я застрял. Я боюсь, что у меня код слепой, или он объектив слепой? Я не могу сказать ... Мое приложение падает на строку с пометкой -->, и я не понимаю, почему.Сбой программы в NSString для преобразования NSDate

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 Я благодарен за всю помощь, которую я могу получить.

+0

Что такое 'wholeDateTimeFormat'? – kennytm

+0

Что значит «это просто умирает»? Какая ошибка? – JeremyP

ответ

4

Просто используйте 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

@Jeremy P: Да, он просто умирает. И он говорит: [NSCFString dateFromString:]: нераспознанный селектор, отправленный в экземпляр 0x6a240c0 ' –

+0

Брэд: Если вы посмотрите на мой код, я признаю, что просмотр кода здесь хорош, или это мой код, который делает это плохо. Однако я поступаю так же, как вы говорите, я должен. Это строка, на которую он падает: NSDate * compareTime = [wholeDateTimeFormat dateFromString: arrayDate]; Я знаю, что arrayDate является NSString, как указано в строке выше. integDateTimeFormat объявляется вне for-loop, так это? –

+0

Что такое "wholeDateTimeFormat", и что такое авария? – Brad

0

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

Я выпустил дату для представления перед циклом.

Спасибо за все входные данные!

Смежные вопросы