#ios #swift #uitableview #firebase #firebase-realtime-database
#iOS #swift #uitableview #firebase #firebase-realtime-database
Вопрос:
итак, я пытался передать данные / значение моей базы данных Firebase в мою tableviewcell
Это сработало, но в моем tableview отображается только один, в то время как в моей базе данных у меня есть 5 menukeys.
мой код выглядит следующим образом
DataService.ds.REF_MENUS.observe(.value, with: { (snapshot) in
if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot]
{
print ("(snapshot)")
for snap in snapshot {
print("SNAP: (snap) ")
if let menuDict = snap.value as? Dictionary<String, String> {
print ("SNAP(menuDict)")
let key = snap.key
let menu = menuContnet(menuKey: key, menuData: menuDict)
self.menus.append(menu)
self.WeekMenu.reloadData()
}
}
}
})
Я выполнил некоторую печать, пытаясь отладить.
в print("SNAP: (snap) ")
я получил все 5 ключей с их дочерними элементами из базы данных
но в print ("SNAP(menuDict)")
остался только один ключ с дочерними элементами
Я думаю, что именно эта строка вызывает проблему
разве menuDict не должен быть массивом со всеми ключами и его значением?
мои ключи — это просто строки, я пытался сделать if let menuDict = snap.value as? Dictionary<String, AnyObject>
, но на самом деле это не сработает
может кто-нибудь, пожалуйста, указать, какая часть вызывает проблему?
Спасибо!
Обновить
Я изменяю это
if let menuDict = snap.value as? Dictionary<String, String>
Для
if let menuDict = snap.value as? Dictionary<String, AnyObject>
и при печати я могу получить все ключи и их дочерние элементы из базы данных, но затем происходит сбой, в котором говорится, что я получил эту ошибку «неожиданно найдено nil при развертывании необязательного значения»
Обновить
сбой, подобный этому скриншоту
это меня убивает…. Я пытался разобраться в этом в течение 3 дней:(
Обновить
похоже, что значения найдены равными нулю, потому что я присвоил значение строке чисел в моей базе данных, пока я даю значения number и letter смешанное значение, оно будет работать
НО здесь возникает другая небольшая проблема :
если я изменяю значения в базе данных Firebase и снова запускаю приложение, оно улавливает новое значение, которое я изменяю, но показывает старое значение в моей tableViewCell
интересно, как это происходит @_@
Комментарии:
1. В какой именно строке происходит сбой? И укажите текущую структуру БД в виде текста, а не в виде изображения
2.
Unexpectedly found nil while unwrapping an Optional value
Я знаю, что это действительно сложное сообщение для понимания, но это означает, что вы принудительно развернули необязательное, которое естьnil
. Поэтому найдите строку, в которой вы принудительно разворачиваете необязательный параметр, и не делайте этого.3. Привет, я обновляю скриншот
4. Хорошо, итак, в моей базе данных firebase я присвоил значение со всеми числами, такими как «45645643», и это не сработает. пока я даю значение типа «5436fgfh52435», это просто сработало…
5. Эй, ребята, спасибо, что помогли мне! Проблема почти решена, осталось решить небольшую проблему, я обновил вопрос и, пожалуйста, любезно взгляните!