В настоящее время я пытаюсь проанализировать данные в «структуре / модели данных»
Код для модели данных:
import Foundation
struct DataModel {
//MARK: Organizes data structs
let userId: String
let Time: String
let Restaurant: String
let PartySize: String
let date: String
}
Я помещаю в нее данные а затем попробуйте и поместите эти данные обратно в многоразовую ячейку для табличного представления
Код для многоразовой ячейки:
class RegistrationCell: UITableViewCell {
//SetUp xib File
@IBOutlet weak var PSize: UILabel!
@IBOutlet weak var Time: UILabel!
@IBOutlet weak var Date: UILabel!
@IBOutlet weak var Email: UILabel!
@IBOutlet weak var Resto: UILabel!
}
Как только я попытаюсь поместить данные из модель данных в ячейку, которую я получаю «Поток 1: неустранимая ошибка: неожиданно обнаружил ноль при неявном развертывании необязательного значения»
Изображение ошибки:
Полный код:
// ReservationsViewController.swift
// MySeat
//
// Created by Adam Abu Ghaida on 3/16/20.
// Copyright © 2020 Adam Abu Ghaida. All rights reserved.
//
import UIKit
import FirebaseDatabase
class ReservationsViewController: UIViewController {
@IBOutlet weak var ReservationTableView: UITableView!
let DB = Database.database().reference().child("Reservations")
//var dataArray: [[String]] = []
var dataArray: [DataModel] = []
override func viewDidLoad() {
super.viewDidLoad()
ReservationTableView.dataSource = self
ReservationTableView.register(RegistrationCell.self, forCellReuseIdentifier: "Cell")
LoadData()
}
func LoadData(){
DB.observe(.childAdded) { (snapshot) in
let snapshotValue = snapshot.value as! Dictionary<String,String>
let PSize = snapshotValue["PartySize"]!
let Resto = snapshotValue["Restaurant"]!
let UID = snapshotValue["Uid"]!
let Time = snapshotValue["Time"]!
let Date = snapshotValue["date"]!
let DBData = DataModel(userId:UID, Time: Time, Restaurant: Resto, PartySize: Resto, date: Date)
//self.dataArray.append(InfoArray)
self.dataArray.append(DBData)
print(self.dataArray)
self.configTabelView()
self.ReservationTableView.reloadData()
}
}
func configTabelView() {
ReservationTableView.rowHeight = UITableView.automaticDimension
}
}
extension ReservationsViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let data = dataArray[indexPath.row]
let cell = ReservationTableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! RegistrationCell
print("\n\n\n\n\n\n\n\n\(data)\n\n\n\n\n\n\n\n")
cell.Email.text = data.userId
cell.PSize.text = data.PartySize
cell.Resto.text = data.Restaurant
cell.Date.text = data.date
cell.Time.text = data.Time
return cell
}
}
Эти же ошибки происходят и со всеми другими операторами "cell.xxx.text"
РЕДАКТИРОВАТЬ:
Чтобы решить эту проблему, просто возьмите self.ReservationTableView.reloadData()
за пределами замыкания.
Еще одна проблема: ячейки не отображаются ...