Почему мои метки исчезают при выполнении этого кода?

#iphone

#iPhone

Вопрос:

Я только начинаю разработку для iOS и пытаюсь создать простое приложение, которое вводит время в EST, а затем выводит PST и CST. Я получил настройку контроллера просмотра, но моя функция фактического отображения времени только заставляет мои метки исчезать. Вот код этой функции.

 - (IBAction)buttonPress {
NSDateFormatter *date = [[NSDateFormatter alloc] init];
[date setDateFormat:@"hh:mm a"];
[date setDateStyle:NSDateFormatterNoStyle];
[date setTimeStyle:NSDateFormatterShortStyle];

NSDate *estTime = [date dateFromString:self.estText.text];
[date setDateFormat:@"hh:mm a zzz"];
self.pstText.text = [date stringFromDate:estTime];

[date setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]];

self.cstText.text = [date stringFromDate:estTime];
  

}

Комментарии:

1. является ли self.estText.text пустым? или какой текст там находится? потому что, если синтаксический анализ с помощью dateFromString завершится неудачей, вся строка будет пустой

2. Нет, это должно быть получение входных данных из текстового поля при нажатии кнопки.

Ответ №1:

Вы пытались посмотреть, можете ли вы жестко закодировать какой-либо текст при нажатии кнопки, т.Е.

 self.pstText.text = @"Does this work?";
  

Вы также могли бы попробовать выйти из своей строки даты

 NSLog(@"Date is: %@", [date stringFromDate:estTime]);
  

Чтобы убедиться, что вы получили что-то еще, кроме пустой строки 😉

Комментарии:

1. Также убедитесь, что свойства label textColor, backgroundColor установлены правильно, чтобы метка не была прозрачной.

2. Ввод текста с жестким кодированием действительно работает, но не похоже, что вывод строки из системы работает.

3. Тогда, я полагаю, ваше форматирование даты возвращает пустую строку 🙂

4. Ну, по-видимому, проблема заключалась в том, как я вводил данные в свое текстовое поле. Это работает с пробелом между временем и am или pm, например, 3:30 вечера, но не с 15:30 вечера.