Я пытаюсь создать приложение для управления финансами, и мне нужно отобразить все транзакции в виде таблицы.Приложение работало нормально, пока я не обновил Pod (я не касался этого проекта с прошлого Рождества, просто вернулся к нему).Итак, теперь я столкнулся с темой «Поток 1: неустранимая ошибка: неожиданно обнаружил ноль при развертывании необязательного значения».
Я попытался изменить свою «структуру», но это не помогло.
Это функция в моем табличном представлении:
func checkUpdates() {
reference(to: .transactions).whereField("timeStamp", isGreaterThan: Date()).addSnapshotListener { (querySnapshot, error) in
guard let snapshot = querySnapshot else { return }
snapshot.documentChanges.forEach {
diff in
if diff.type == .added {
self.transactionArray.append(transactionStruct(dictionary: diff.document.data())!)
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
}
}
}
Я получаю сообщение об ошибке потока 1 в строке 7, где написано "self.transactionArray.append ..."
Это нижедля структуры:
protocol DocumentSerializable {
init?(dictionary:[String: Any])
}
struct transactionStruct {
var description: String
var amount: Int
var timeStamp: Date
var dictionary: [String: Any] {
return ["description": description,
"amount": amount,
"timeStamp": timeStamp]
}
}
extension transactionStruct: DocumentSerializable {
init?(dictionary: [String: Any]) {
guard let amount = dictionary["amount"] as? Int,
let description = dictionary["description"] as? String,
let timeStamp = dictionary["timeStamp"] as? Date else { return nil }
self.init(description: description, amount: amount, timeStamp: timeStamp)
}
}
Теперь, после того как я добавлю новую запись, приложение будет аварийно завершать работу, и я получаю этот поток 1: фатальная ошибка каждый раз.Почему это происходит?