Значение nil при изменении String на Date после извлечения из базы данных Firebase - PullRequest
1 голос
/ 21 октября 2019

Я сохранил значение Date как String в моей базе данных Firebase, поскольку Firebase не позволяет вам сохранять его как тип данных Date. Вот скриншот базы данных:

Firebase database

Нет проблем с поиском данных. После получения я хочу преобразовать строку в дату («10-22-2019 22:12»), вот код:

class CustomNotificationsTableCell: UITableViewCell {

    var notificationTableCellData: NotificationsData? {
        didSet {

            let dateformatter = DateFormatter()
            let deadline = dateformatter.date(from: notificationTableData.storyDeadline) // notificationTableData.storyDeadline is the date String

            _ = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { (timer) in

                let seconds = Int(deadline?.timeIntervalSinceNow ?? 0.0)
                self.timeLeft.text = "\(seconds / 3600):\((seconds % 3600) / 60):\(seconds % 60)"

                if seconds == 0 {
                    timer.invalidate()
                }
            }
        }
    }
}

Проблема в том, что значение переменной deadlineвсегда ноль;как я могу решить эту проблему?

1 Ответ

1 голос
/ 21 октября 2019

Вам нужно установить формат даты для вашего dateformatter перед получением даты из строки. Предполагая, что ваша Дата исполнения (10-22-2019 22:12) является вводной, dateFormat будет выглядеть следующим образом.

dateFormatter.dateFormat = "MM-dd-yyyy HH:mm"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...